どらちゃんのポッケ

R・統計・技術メモなど勉強ログ置き場

kerasでirisの分類をやってみたメモ

(注意)ただ、私が自分自身のkerasの学習のために書いたメモです。このエントリには、何も新しいことはありません。

kerasとは

kerasは有名なので、そんなに説明はいらないかと思うけれども、Pythonの深層学習ライブラリ。TensorflowやTheanoのラッパー的な位置づけで、ネットワークのモデルを簡単に記述できるフレームワーク。Caffeとか、Chainerとか、動かしたことあったけど、Kerasはなかったので、最近評判がいいと噂のkerasを触ってみることに。触った感じもめちゃくちゃ分かりやすいので、研究用途でなく、私みたいな深層学習との向き合い方をしている人には、keras最高じゃないかなと思います。

最近、ドキュメントが日本語に翻訳されているので、とても読みやすい。

Chainerとか、他のフレームワークとの比較は下記のSlideshareが何となく分かりやすい。

Deep Learningライブラリ 色々つかってみた感想まとめ // Speaker Deck

簡単なコードの説明

有名なirisの分類問題をkerasでやってみました。 ちなみに、バックエンドはtensor flowで実行しています。コードの全部は、gistに貼ってあります。

データの準備:irisデータ読み込み

from sklearn import datasets
iris = datasets.load_iris()
features = iris.data            #特徴ベクトル
targets = iris.target           #分類ラベル
  • ちなみに、featuresとtargetsのデータ構造像はこんな感じです

features

array([[ 5.1,  3.5,  1.4,  0.2],
 [ 4.9,  3. ,  1.4,  0.2],
 [ 4.7,  3.2,  1.3,  0.2]・・・

targets

array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
    1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
    2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2])

kerasに必要なものをインポート

from keras.models import Sequential
from keras.layers import Dense, Activation

モデルの設定

model = Sequential()
model.add(Dense(12, input_dim=4))
model.add(Activation('relu'))
model.add(Dense(3, input_dim=12))
model.add(Activation('softmax')) 
model.compile(optimizer='SGD',loss='sparse_categorical_crossentropy',metrics=['accuracy'])
  • 上記で書いたモデルはこういう感じになります

    • 入力層:4次元
    • 隠れ層:12次元
    • 出力層:3次元(3クラス分類問題のため)
    • 各層の間の結合:Dense(全結合)
    • 入力層→隠れ層の活性化関数:relu
    • 隠れ層→出力層の活性化関数:softmax
    • 最適化:SGD
    • 損失関数:sparse_categorical_crossentropy
  • 図に表すとこんな感じ

    • f:id:sleeping_micchi:20160915003336p:plain

学習

model.fit(features, targets, nb_epoch=20, batch_size=5)
  • kerasでは、こんな感じで標準出力に学習途中の結果を出してくれます
  • さらにkerasのバックエンドをtensor flowにした場合は、結果をtensorboardでみることができます
    • modelとかにcallbackを指定してあげる必要はあります
Epoch 1/20
150/150 [==============================] - 0s - loss: 1.2433 - acc: 0.5067     
Epoch 2/20
150/150 [==============================] - 0s - loss: 0.6935 - acc: 0.6733     
Epoch 3/20
150/150 [==============================] - 0s - loss: 0.6501 - acc: 0.7000     
Epoch 4/20
150/150 [==============================] - 0s - loss: 0.6012 - acc: 0.6733     
・・・(以下略)・・・

学習モデルで予測

model.predict(features, batch_size=10, verbose=1)
  • 上記で学習したモデルにデータを入れたときに、どういう予測をするのかを返えす
  • だた、今回は、kerasの動きを見たかっただけなので、全部学習データとしてつかっているので。なので、あまり意味はなくなっています。本来であれば、データを学習用とテスト用に分けておきます。

  • ちなみに、こんな感じで出力されます。今回は3クラス分類問題なので、3次元で出力されます。

array([[  9.78549898e-01,   2.12393254e-02,   2.10749422e-04],
  [  9.49374020e-01,   4.98638190e-02,   7.62094394e-04],
  [  9.69367325e-01,   3.02073583e-02,   4.25341772e-04],
  [  9.45379853e-01,   5.37167825e-02,   9.03351058e-04],
    ・・・(以下略)・・・

学習モデルの評価

model.metrics_names
model.evaluate(features, targets, batch_size=10)
  • 本来であれば、交差検定をやるべきなんですが、kerasの動きを見たかったので、交差検定やってません。
  • なので、これは今回は動きを見る程度です

その他:いろいろやってみて思ったこと

損失関数の設定をまちがってやってみると・・・?

モデルの記述のところに、 sparse_categorical_crossentropyではなく、 categorical_crossentropyと記述してみるとこんな感じに例外となった。

model = Sequential()
model.add(Dense(12, input_dim=4))
model.add(Activation('relu'))
model.add(Dense(3, input_dim=12))
model.add(Activation('softmax')) 
model.compile(optimizer='SGD',loss='categorical_crossentropy',metrics=['accuracy'])
model.fit(features, targets, nb_epoch=20, batch_size=5)
  • 例外部分
Exception: Error when checking model target: expected activation_22 to have shape (None, 3) but got array with shape (150, 1)

モデルのチェックでおかしいよと例外が飛んでいるのがわかったが、損失関数の設定がマズいと気づくのに少し時間がかかってしまった。もう少し、丁寧なメッセージだとありがたいが・・・。ちなみに、 categorical_crossentropyは、数字ではなく、文字でのラベリングデータに使用するみたい(kearas_available-objectives)。

モデルのテストどうするんだ問題

上の損失関数の設定ミスでは、例外が飛んでミスとわかったが、ネットワークのモデリングについては、間違えても例外が飛ばず、自分のモデルの記述ミスに気がつかないケースもあって注意が必要だなと思った。

たとえば、irisは3クラス分類なのに、なぜか私は最初4クラス問題だと思い込んでしまっていて、最後の出力層の次元を4次元と設定していた。accuracyがちょっと上がりにくいなーと見直してようやく、自分のミスに気がついた。このようにミスがあっても、それでも何となくは動いてしまうので、テスト(品質保証の方)が難しいなーと思った。

活性化関数とか、モデルどうするんだ問題

初めのirisぐらいなら、雑に組んでも学習できるでしょと舐めきっていて(ごめんなさい)、単純にコードとしてkerasで組むことだけを考えていたので、ネットワーク設計は微塵も考えずに、relu使っておけばいいやと、隠れ層・出力層の活性化関数ともにコピペでreluに設定していた。

けれども、reluだと全然学習がうまくいかなかった。 このようにモデルを設定して、学習させたらacc: 0.3600 までしかいかなかった・・・。

model = Sequential()
model.add(Dense(12, input_dim=4))
model.add(Activation('relu'))
model.add(Dense(3, input_dim=12))
model.add(Activation('relu')) model.compile(optimizer='SGD',loss='sparse_categorical_crossentropy',metrics=['accuracy'])
model.fit(features, targets, nb_epoch=20, batch_size=5)

ちなみに、出力層がsoftmaxとreluではこのぐらい違った。

  • 出力層がsoftmax
    • loss: 0.2591 - acc: 0.9667
  • 出力層がrelu
    • loss: 0.6949 - acc: 0.3600

多クラス分類の出力層にになんで、relu使っているんだ!?という疑問はおっしゃる通りなのですが、雑にネットワークモデルを組んで動かしても、精度がでないということは今後注意しておきたい(今までこの現象にあたってこなかったのは、単純に私の経験値不足かもしれないが)。

今回、kerasの実装を追いたいということで、モデルを考えずにreluをつかったけれど、DNNをやるときはそれではダメで、実装とネットワークモデルはセットにして考えないといけない(むしろ、ネットワークを先に設計してから、実装する方がいい)ということを再認識させられた。

ちなみに、2クラス分類、多クラス分類、回帰などの使い分けは機械学習プロフェッショナルシリーズの深層学習に載っていたりするが、下記を参考にしてもといいと思います。

www.slideshare.net

それにしてもKerasは直感的に記述できて、分かりやすい。研究でなく、動かしてみたいというのであれば、ほぼkerasでいいのではないかと思う。

最近気になった人事組織ネタ(9/13)

「会社に縛られずに働く」ことは可能か

news.yahoo.co.jp

以下4人へのインタビューを載せている記事。 それぞれのインタビューに、それぞれ、「へー」と思う部分があり、面白かった。働き方(?)と貯蓄という観点で、語っている記事は読んだことがなかったので、 未来の選択肢を増やすためにも「貯蓄」をするべきが個人的には新鮮だった。

・旧来型の雇用スタイルでは、もう優秀な人材は集まらない
青野 誠・サイボウズ株式会社 人事部マネージャー
・独立や起業を夢見る前に、今の場所でやるべきことがある 
瀧本哲史・京都大学客員准教授
・未来の選択肢を増やすためにも「貯蓄」をするべき
藤川 太・ファイナンシャルプランナー
・会社に「縛ってもらえる人」が減っていく 
安藤至大・経済学者

日本の人事部「HRアワード」2016

hr-award.jp

「日本の人事部」というメディア(?)で行われている、今年の人事系の取り組み・書籍などのアワードを決める投票が始まったらしい。このアワードがあることを初めて知ったけれど、ノミネートされているものを眺めるだけでも十分面白かった。結果を期待して待ってみよう。

管理職になることは昇進ではない。Facebookに学ぶスマートな組織運営のコツ

www.lifehacker.jp

Facebookでは、管理職になることは昇進ではありません。ポストの横滑り、平行移動にすぎないのです。管理職は社員をサポートし、何かを成し遂げる上で妨げとなるものを排除するために存在します。管理職に任命される理由は、その人が対人関係をうまく回す優れた技量を持っているからなのです」とParikh氏は解説しています。

これ、めっちゃ同意。秀れた選手は、秀れた監督になれるのか問題や、秀れた研究者は秀れた教育者になれるのか問題と同じように、管理職と現場では、求められるスキルが全然違ってくるので、現場の延長線(昇進)としての管理職ではない方が私もいいと思う。1on1がちゃんとできて、コミュニケーションがちゃんと取れて、人員アサインがちゃんとできて・・・という管理職に求められるスキルは全然ちがうと思うので、そういうことができる人を管理職にアサインした方がいいと思う。

ただ、管理職とリーダーシップのバランスがどうなるのかがわからない。管理職=昇進の文脈では、「この人はこのプロジェクトを大成功に収めた人だから安心だ」という“過去の栄光“・“これまでの実績“によってリーダーシップを発揮することができる。しかし、管理職≠昇進の文脈では、“過去の栄光“・“これまでの実績“を使ったリーダーシップを発揮することができないので、別の何かが必要となる。その「何か」を持っていないと組織としてまとまらないなーと思った。いや、そもそも、管理職がリーダである必要もないのか??

「男が育休取って人生が変わった」事例を紹介してきました

quindim.hatenablog.com

とても綺麗にまとまっているし、先人の体験の感想や想いというのは大変、参考になる。 私も育休を取ったので、感想や体験談をまとめて、どこかで発表しようかな。

今回は、以上!

"チームが機能するとはどういうことか"を読んだ。強いチームを作りたい人は一読の価値あり。

チームが機能するとはどういうことか――「学習力」と「実行力」を高める実践アプローチ

チームが機能するとはどういうことか――「学習力」と「実行力」を高める実践アプローチ

この本を取った理由

チーム開発の文脈で、この本、結構出てきていたので、良さそうだなと思い手に取りました。そうしたら、ちょうど、naoyaさんの一人CTO Nightでも触れられていて、やっぱりいい本だと思うし、読んでよかったなーと。

開発組織マネジメントのコツ // Speaker Deck

印象にのこったこと

フレーミングの効果

プロジェクトの目的、メンバーの人選、チームの役割などをどのようにフレーミングするかによって、パフォーマンスは大きく変わってくる。

例えば、おなじタスクであっても、プロジェクトの目的が「決められたタスクをこなす」というフレーミングと、「高い品質を実現するための挑戦」というフレーミングでは、チームのパフォーマンスが異なってくる。

同様に、チームの役割(「リーダの指示に従うだけ」OR「パートナー・チームメイト」)やメンバーの人選(「工数が空いていたから」OR「あなたのこのスキルが欲しかった」)のフレーミングも大事。

この辺のどういったフレーミングを作るのか?はプロジェクトマネージャやチームリーダの重要な仕事の1つなんだと理解した。自分自身の癖として、要件のダメっぽさとか、謙遜や恥ずかしさ(?)から、ついつい「どうってことない仕事」って言いがちになってしまうので、気をつけていかないといけないなと思った。

心理的安全性

すこし前に話題になった、Googleが調査・発表していた心理的安全性と生産性のニュース

gunosy.com

で取り上げられていた、心理的安全性について詳しく解説がなされていて、とても参考になった。

心理的安全性が高まることによって、積極的な発言や失敗の共有などがなされていき、組織として学習していくことができる。その心理的安全性を妨げる不安として、以下の4つの不安があって、この不安が少ないと心理的安全性が高まっていく。

  • 無知だと思われる不安
  • 無能だと思われる不安
  • ネガティブだと思われる不安
  • 邪魔をしていると思われる不安

そして、リーダの言動も心理的安全性にかなりの影響を与えていて、心理的安全性を高めるためにリーダの言動を気をつけなくてはいけない。心理的安全性が満たされている組織の判断基準もあって、それが満たされているのかどうかを意識するといい。

幸いなことに、自分のチームでは、上記の4つの不安は感じていない(少なくとも自分は)ので、かなり心理的安全性は高いなと思って読んでいた。

また、先輩などから、「"知らないこと"を理解している=その範囲で理解できている」などと教わり、"知らないこと"は悪いことではないという感覚が強いので、そういう意味でも不安は少ないなと思った。とても幸せな環境にいるということを有り難いと思いつつ、自分も心理的安全性を高められるように振舞っていきたいと思う。

失敗について

失敗をチームとしてどう捉えるかによって、チームの学習が変わってくるということを印象に残った。 失敗という概念も広く、“非難に価する失敗”から“賞賛に価する失敗”まであって、「失敗」という単一概念でひとくくりにしてしまうと、挑戦が減ってしまい、創造性がなくなってしまう。

創造性と失敗については、ピクサーでの事例がピクサー流 創造するちからの本に書いてあります。

ピクサー流 創造するちから―小さな可能性から、大きな価値を生み出す方法

ピクサー流 創造するちから―小さな可能性から、大きな価値を生み出す方法

また、失敗をたくさんするチームの方が、失敗がすくないということも印象に残った。些細な失敗でも報告しているチームの方が、数としては失敗が多いけれども、失敗を報告せずに握り潰すチームよりも、最終的な失敗は少ないということらしい。そして、失敗を気軽に報告できるかどうかは、心理的安全性が高いかどうかに影響される。

チーム開発とは少しズレてしまうけれども、Netflixのchaos monkeyを思い出した。

www.publickey1.jp

github.com

日頃からわざと軽微な障害を起こし続けることによって、本当に障害が起こった時も問題なく対応できるような体制・仕組みを準備しておくというchaos monkeyは、この失敗をたくさんした方がいいということと共通しているのだろう。

もうひとつ印象に残ったのは、失敗をせずに働いている人よりも、失敗をしてそれを共有する人の方が組織にとっては良いということ。これは、少し意外だった。1人で作業していて常に失敗せずに淡々と作業してばっかりしていると、失敗が共有できず組織としては成長できないという理由らしい。

「失敗」を単一概念で捉えず、いい失敗と悪い失敗に分けて、良い失敗はどんどんしていって、共有していきたい。

本を読んでの気づき

自分の本質

本の冒頭にこんなような内容のことが書いてあった。

イノベーションを起こしたり、不安定な時代を生きるには、学習する組織が大事で、チーミング大事。

私がチーム開発・強いチームの作り方に興味があるのは、心理学的な部分が好きということもあるけれども、新しいサービスやまだ見ぬスゴイことをやりたいと思っているということも大きいのかな?と思った。

1+1=2以上となるような、強いチームで新しいことに取り組んでいくということが自分のモチベーションなのかもしれないとこの本を読んでいて実感した。

生産性と有益な妨害

心理的安全性のところで、トピックスとして「有益な妨害」といって、仕事を邪魔をした方が、学習にはプラスになるという研究結果があるらしいということに触れられていた。

ポモドーロテクニックなど、生産性を上げるライフハックもあったりする中で、邪魔があった方がプラスになるってどういうこと?と思ったけれど、それはどの粒度での生産性を見ているかの違いだと思った。

1日1日の日々の短期的な生産性を見ているのか?それとも、5年・10年の長期的なスパンでの生産性を見ているのか?ということの違いで、かなり違ってくる。短期的な生産性と、長期的な生産性とのバランスをうまく取って、日々の業務を回しつつ、チームとしての学習も行っていかないといけないなと感じた。

半期毎の面談などのタイミングで、「n%の生産性を向上させました」などと話すことがあるけれども、これからは生産性を語るときには、どの粒度での生産性について語っているのか?ということを意識しながら話すようにしたい。

単純に生産性を超上げるだけではチームとしての学習は進みにくいし、クリエイティブなものは生み出せないと思うので、両方のバランスを意識できるようになっていきたい。

心理的安全性と"雑"

CookPadさん では、アイディアや話を進めるために“雑”という概念(品質が悪い/作業が粗悪という意味ではない)を取り入れている。

techlife.cookpad.com

この“雑”という概念は、完成しきっていない発言を促進したり、「何言ってんの?」っていう不安を取り除いて、心理的安全性を高める効果があるのではないかな?と思った。“雑”というのは、心理的安全性を広めるために、とてもキャッチーでいい好例だと思う。

Cookpadさんの“雑”にあたる言葉を、それぞれのチーム文化にあった中から探すというのもいいんじゃないかと思った。その何か別の言葉が見つかれば、心理的安全性をもっと別の概念で広めてもいいんだなと思った。"言葉"って大事だなー。

最近気になった人事組織ネタ(9/5)

ヒューレットパッカード社の社員の離職リスク予測 第一回機械学習ビジネス研究会

www.slideshare.net

ところてんさんの資料。とてもよく纏まっている。 離職リスク分析は、経営にとってもメリットがかなりありそうだし、機械学習/統計モデリング的にも割と簡単な手法が試せそうだし、コストメリットがかなりある領域なんだなーと。

社員全員に個人情報入りビーコン配布--社内コミュニケーションは活発化したのか?

japan.cnet.com

5/14のエントリーで紹介した取り組みの結果がでたみたいです。 取り組み的にはおもしろかったけど、結局、意味がなかったという結果に終わったらしい。 同じような取り組みをしているビジネス顕微鏡は、あまりネガティブな結果はでていなかったように思うけど、どうんあんだろう。ネガティブな結果でもちゃんと公表してくれるのはありがたい。

コミュニケーションを科学する方法って難しいなーと。

「伊藤、ユニティ休むってよ」

http://warapuri.com/post/149776216778/伊藤ユニティ休むってよ
warapuri.com

Unityエバンジェリストの伊藤さんがサバティカル的な感じで、3ヶ月間休職をするらしい。

自分も業務を回していく中で、新しい技術を触って理解する時間を確保できなくなってきているなーと感じるので、こういう制度があれば嬉しいかも。こういう働き方の多様性があるというのが良いですね。

日本企業に共通する「多すぎる中間管理職問題」の解決法 - 坂本幸雄

blogos.com

企業の宝であるエンジニアをなぜ代替可能な管理職にするのか私には理解できない

管理職の給与は高く、代替要員はいくらでもいるため、リストラ候補の筆頭になる。

文系社員は、営業なり財務なり専門性を磨くしかない。日本にはジョブローテーション制を採用し、ゼネラリストを育成している企業も多いが、これもリストラ候補を育てているようなものだ。

日本の出世コースとして、エンジニア->マネージャーしかなくて、マネージャーが多すぎる問題を指摘している記事。個々人が「自分が何で給与をもらっているのか?」ということを自負できない専門性の欠如・そして、その専門性の会社内での偏り(ex:マネージャーが多い)が問題なんじゃないかと個人的には思う。

そして、管理職は代替要員はいくらでもいるというのは言い過ぎな気がする。管理職の責任範囲がどこからどこまでかによって、議論の内容は変わってくるけれども、管理職も専門性が求められる仕事であるのは間違いない。

“エンジニア35才定年説に挑戦する” 開発チームのマネジメント

speakerdeck.com

マネジメント業務を思い切って外出しにしてみました

新しい発想だなと思った。SIerとかだと、マネージャー=責任をとる人という感じになっていると思うので、マネージャーとして他社の人を入れずらいとは思うけれど、個々人の専門性と成長の方向性・やりたいことを考えると、マネージメントのプロとして外部メンバをアサインするというのはとてもアリな気がしている。

そして、1つ上の「多すぎる中間管理職問題」の記事と合わせて考えると、マネージメントの部分を外に出すということも今後多くなっていくのかもしれないなと、ぼんやり感じた。

伊藤直也さんの一人CTO Nightに一人で行ってきた

itosho525.hatenablog.com

内容自体は、細かく、ここのブログに載っているので、説明不要かと思います。 こういう、技術とマネージメントの部分はとても興味がそそられる。まずは、引っ張っていくだけの「何か」(実績とか、技術力とか、地位/役職とか、人望とか・・・?)を得たいところ。

日本マイクロソフト「働き方改革週間 2016」を実施

news.microsoft.com

日本政府の提唱する「世界最先端 IT 国家創造宣言」(平成25年6月14日閣議決定、平成28年5月20日「改定」閣 議 決 定)の中で、テレワークの推進、ワークスタイルの変革などが提唱されています。目標として、2020 年には、テレワーク導入企業を2012 年度比で3倍、週1日以上終日在宅で就業する雇用型在宅型テレワーカー数を全労働者数の10%以上を目指す、と設定されています。また平成28年8月3日に開催された安倍内閣総理大臣記者会見において、日本政府の一億総活躍による未来への挑戦の最大のチャレンジとして、「働き方改革」が掲げられました。

MSの取り組みも素晴らしいとは思うのですが、この記事で世界最先端 IT 国家創造宣言テレワーク月間なるものを初めてしりました。

世界最先端 IT 国家創造宣言の本文はここにあります。テレワーク月間のリンクはこちらから。テレワーク月間は、今年は、2016/11/1〜2016/11/30らしいので、そのあたりにまた何か国としての動きがあるのかも?と思うので、11月になったら覗いてみたいと思います。

リオオリンピックとIT技術 その2:競技関係

前回は、メディアや情報配信についてまとめましたが、今回は競技・トレーニングの中で使われている新しい技術についてまとめてみたいと思います。一次ソースになかなか当たれないので、わりと伝聞口調になってしまっていますが・・・。

競泳

Omegaがターンと連動するラップカウンターを800m自由形と1500m自由形でプールの底に設置。2015年の世界水泳カザンでも試験導入されていた技術らしい。これによって、残り距離を忘れずに済むというもの。

OMEGA Watches: OMEGA serves as Official Timekeeper at the FINA World Swimming Championships

昔、800m自由形に出場してましたが、苦しい時、残りの距離を忘れてしまっていたりしたので、こういう技術はありがたいです。ほんと。一般層まで早く落ちてこないかな。

また、Ryan Lochteなどが、日常生活の改善のために、リストバンド型ウェアブルデバイスのwhoopつけていたらしい。whoopで取得したデータ(睡眠時間やトレーニング時間、アルコール摂取など)を参考に日々の生活をコントロールしていたみたい。その他、競泳選手だけでなく、いろいろな選手がつけていたみたいで、詳細は下記blogに書かれている。

thelocker.whoop.com

カヌー

オールにGPSセンサーを取り付けて、どのくらいのスピードで、どこを走行しているのか?ということがわかるようになり、それをスクリーンに映し出すことで、観客の観戦体験が大きくかわったらしい。

また、GEは、カヌーに加速度・ジャイロ・GPS地磁気などのセンサーをつけ、大量に取得・リアルタイム解析し、カヌーチームのトレーニングを支援していた。センサーデータにより、ボートの位置/姿勢/速度・ボート漕ぎの強さなどを割り出すことができるようになり、さらに選手のハートレートと合わせて分析することで、効率的なトレーニングができるようになったらしい。

www.gereports.com

さらに、イギリスチームは、VRを使いコースのチェックやイメージトレーニングを行っていたらしい。水に入らず、着替えをする必要がなく、コースのチェックやイメージトレーニングができることが良かったらしい。

10 Gadgets That Give Olympic Athletes an Edge in 2016 の7ページ目

アーチェリー

電子採点の仕組みを導入し、また選手の心拍数も見えるようになっていたらしい。採点までの時間が短縮され、心拍が見えることによって観客にも緊張感も伝わるようになったらしい。

ボクシング

Hyksoという、センサーを拳に巻きつけ、強さ・スピード・パンチの種類・パンチのカウントをし、スマホで確認できるデバイスを、アメリカ・カナダのチームが使っていたらしい。

HyksoはY Combinator出身のスタートアップで、一般の方も購入できるようになったっぽいので、欲しい方はポチッとしてみてはいかがでしょうか。

www.hykso.com

自転車競技

アメリカの自転車競技チームが、Solosという、リズム・心拍数・距離などが投影されるスマートグラスを使ってトレーニングしていたらしい(本番は使用不可だったっぽい)。

こちらは、Kickstarter出身とのこと。

www.kickstarter.com

また、New Zealandチームは、空気抵抗を考え、個人ごとの特性に合ったハンドルバーを3Dプリンターで作成していたらしい。また、さらにそれを発展させたものとして、パラリンピックの選手の義足も3Dプリンターで作成し、使用するらしい。支援はAutoDeskが行っている。

www.dezeen.com

体操

アメリカの体操チームが、血流を良くすることで故障予防をするためにLumiWaveを使用していたらしい。

その他:会場周り

セキュリティバルーン

logosはもともと防衛の米部門のための技術を転用して、リオオリンピックの警備のためにセキュリティバルーン(気球)を使用した。この気球で写真を撮影し、警備に利用した。4つの気球に13個の高解像度のカメラを搭載し、1個の気球で約140平方kmをカバーする。周辺地域の毎秒3枚の写真を撮影することが可能らしい。

リング型決済

VisaがNFC搭載のリング型デバイスでの決済を入れていたらしい。充電不要、水深50mまでの耐水性がある。 手ぶらで買い物ができ、耐水性もあるということで、競泳のMissy Franklin選手が、使っていたらしい?

開会式ウェア

アメリカチームの開会式のブレザーはPolo Ralph Laurenのものだったけれど、その全面・背面両方に電子発光パネルを使っていたらしい。文字通りのウエアブルデバイス。

3D printerでシューズ

Under Armourがマイケルフェルプス特注のシューズを3Dプリンターで作ったとのこと。競泳選手に靴はまぁ必要ないけれど、マーケティング・宣伝目的で作成したとのこと

fortune.com

まとめ

ウェアブルデバイスはよく登場してきていて、2020までにはもっと、トップアスリートがウェアブルデバイスをつけるということはあるのかもしれない。ただ、「ウェアブルデバイスも胡散臭い代物から、徐々にトップアスリートも使うぐらいのものになってきているのか?」それとも、「ベンチャーマーケティングの一環でトップアスリートに着けさせているのか?」どちらなのか疑問だなと思った。

調べている限り、日本の技術はあまり出てこなかったけれど、2020に向けては日本の技術もどんどん展開していってほしいな。例えば、気球の監視は、セコムさんが東京マラソンで実施されていたり、NTTさんと東レさんのhitoeは生地に電極を埋め込むことで、ウェアで心拍・心電図まで取得できたり。・・・といったように、まだまだ私の知らないものも含めたくさんあると思うので、4年後までに選手だけでなく、裏方を支える技術でも日本勢が躍進できればいいなと思った。

また、カヌーのGPS導入とか、アーチェリーの心拍表示とか、観客をいかに楽しませるのか?という視点で技術も導入されてきていて、そっちの方向も面白いなと思った。いろんなところにセンサー着けて、オープンデータにしちゃえば、色々な次の発展もあると思うし、楽しいと思うけど、利権問題で難しいんだろうなーと。

参考

リオオリンピックとIT技術 その1:メディア・情報配信

リオオリンピック終わっちゃいましたね。

個人的には、リオオリンピックのハイライトは、競泳男子800mリレーの銅メダルでしょうか。本当に嬉しすぎる。日本の自由形が世界で戦えることを証明してくれたのが本当に嬉しい。

自分も競泳をしていて、自分は雑魚選手で終わったけれども、それでも自分の専門種目が世界で戦えるようになったというのが、本当に嬉しい。おめでとうございます!閉会式の日本のパフォーマンスもよかった、一気に2020に期待したくなった。

そんなリオオリンピックですが、どんな所に新しいIT技術が導入されていたのか、ざっと調べてみました。

360°動画

NHKが開会式、ビーチバレーで360度動画配信をしていました。

www.nhk.or.jp

開会式のリアルタイム配信をちょっと見ていましたが、イマイチでした。イマイチだと思った理由は以下の3つ。

  • ステッチなどの画像加工などのためか、TV中継から360度動画の間の遅延は1分ちょっとぐらい。TVで普通の映像をみつつ、全天球動画で他もみたいというユースケースには耐えられないな
  • 画質がやっぱり少し悪い
  • 360度動画を撮影しているカメラの位置取りが悪く、360度である意味がほぼない(半分の180度ぐらいが観客席になってしまっていて、カメラを動かす意味が無い)

カメラを置ける位置が制限されていて、本来撮影したいポジションに置くのが難しいのでしょうが、魅力的なコンテンツに仕上げるには、ここが大きな課題だなーと思った。

また、BBCでもアプリで360度動画の配信していたようです。日本リージョンでアプリ配信されておらず、現物は確認できてませんが・・・。

www.bbc.co.uk

ちなみに、この360度映像は、公式のオリンピック・ブロードキャスティング・サービス(OBS)が撮影していて、 それを各社が使いまわしているっぽいので、映像自体はNHKBBCも同じなんじゃないかなと思います。

一般大衆向けの全天球カメラもRICOH THETAや、iphoneに付属でつけられるInsta360 Nanoなど、色々と種類も豊富になってきて、2020までにはもっと普及するんじゃないかな?って思っています。

2020のときにはもうちょっとメジャーになってVRや全天球動画が流行っているのでしょうか?もし、そうなら、開会式の真ん中に全天球カメラを設置してほしい!

ネット配信

今回のリオオリンピックで、ネット配信の存在感が増したような気がする。 閉会式をリアルタイムで見れなかったので、見逃し配信は超助かった。

スタッツ情報のオーバレイ、マルチビューを実装していて、今後に期待できるいい感じのサービスだと思う。

sports.nhk.or.jp

次の2020のときには、TVとネットが交代し、ネットが主役になっているのか? その可能性は十分あると思うし、ネット配信によって、視聴体験は変わる可能性があるなと思った。

スタッツ情報のオーバレイ

サンプルで、競泳とバレーボールのもののスクショを貼ってみました。

日本人選手も注目選手も出ていない試合を見るときに、スタッツ情報を眺めていると楽しいし、生放送は臨場感高くするためにスタッツは非表示で、リプレイ時にスタッツをみながらもう一度見るといった視聴体験は面白いなと思った。

だた、動画にオーバレイするのではなく、動画の外にスタッツ出してほしい・・・。 f:id:sleeping_micchi:20160824223605p:plain f:id:sleeping_micchi:20160824223619p:plain

マルチビュー

複数の競技の中継を、1つの画面で同時に視聴できるような機能。リアルタイムで同時に進行するオリンピックならではだと思うけれど、全部をみたいという欲張りの人にはいいかもしれない。

Webなんだったら、TVっぽい画面分割でなく、Webっぽい画面分割でもっと見やすくならないかな?とか思ったり。 f:id:sleeping_micchi:20160824223636p:plain

ニュース配信/メディアの取り組み

日本のメディアはよく調べていないけれど、各海外メディアは色々、取り組んでいた模様。

The New York Times

SMS配信

オリンピックの試合の進行に合わせてSMS配信。

横スクロール記事

http://www.nytimes.com/interactive/2016/08/15/sports/olympics/usain-bolt-mens-100-meters-final.html

陸上100mの様子を横スクロールで、解説。はじめて、横スクロールで「いいかも」って思った。横であることのメリットを感じた。

インターラクティブ記事

http://www.nytimes.com/interactive/2016/08/05/sports/olympics-swimmer-ryan-lochte.html

コーチの発言、選手の競技中の動画、コメントなどをいい感じに織り交ぜながら、表現している記事。 この例では、コーチの発言、選手の競技中の動画、コメントを使って、ライアンロクテの速さに迫っている。

GIF配信

オリンピック組織員会は、承認されていないGIF画像を配信することを禁止しているけれども、イラストにすることによって、禁止条項を回避して、わかりやすい情報提供をおこなった

The Washington Post

botsで自動記事作成

こんな感じの記事をbotで試合結果を自動作成して配信。 AIとかではなく、恐らくテンンプレートを用意をして、当てはめているっぽい?

インターラクティブ記事

www.washingtonpost.com

上のものは、スポーツでつかうボール・道具・競技場などの大きさを比較して、可視化しているインターラクティブ記事。 体操の平均台が卓球台よりも全然大きいものであったり、アーチェリーのフィールドが77ヤードもあるなんて知らなかった。

Guardian

バイルPush

Guardian Mobile Innovation LabがWeb Pushを実験的に導入。 Daily leaderboardや、Real-time medal alertsなどの情報をWeb Pushを配信していたらしい。

medium.com

インターラクティブpodcast

www.theguardian.com

RioRunという、リオオリンピックのマラソンをなぞったPodcastを配信している。ユーザがランニングしながら聞くことを想定していて、走行距離などに応じて配信する内容を変え、Podcastを聞きながらランニングすることで擬似的にリオのマラソンコースを走っている感じになるっぽい。 Podcast(音源情報)をユーザの状態に応じて切り替えるものをインターラクティブPodcastというらしい?

インターラクティブ記事

www.theguardian.com

katie ledeckyの4フリの世界新をインターラクティブ記事で紹介。 なかなか面白い、インターラクティブ記事だ。

Wall Street Journal

オリンピックゲーム

graphics.wsj.com

いくつかのオリンピック競技っぽい、ミニゲームを公開している。 ボタンを押す反応時間を計測すると、陸上選手のスタートと比較したり、他のユーザと比較できたりできるゲームを展開していた

その他(各スポーツメーカ)

tritonwear

TritonWear | 2016 Olympic Games

tritonwearは、頭に装着することで、Stroke Countやスプリットタイム、水中にいる時間などを測定できるウェアブルデバイスを販売している会社。その会社もオリンピックの情報をインターラクティブ記事で配信していた。 全然、調べ切れていないが、Sports×ITをやっているベンチャーで、他にも試合結果をインターラクティブ記事で公開しているメーカがあるんじゃないかなと思う。

感想

インターラクティブ記事は、割とどこのメディアもやっているので、一般化してきているなーという印象。インターラクティブ記事は、何をどう可視化するのか?という部分が難しいなと思いつつ、苦労して実装してメディアのメリットになるのか?という疑問もあります。 その中で、GIFアニメで可視化してわかりやすくTwitterなど軽量?メディアで配信するっていうのは、ユーザからみると隙間時間でわかりやすく情報を受け取れるので、すごくいいなと思った。GIFアニメいいな、今度から使ってみようと思いました。

メディア系だけでなく、競技の中でも新しい技術が使われているようなので、そっちの内容も後日、別途、別のエントリにまとめようかと思います。 内容をまとめましたので、こちらのエントリをご覧ください。

参考URL

http://www.niemanlab.org/2016/08/these-are-some-of-the-coolest-experiments-in-digital-news-coverage-of-the-2016-rio-olympics/

最近気になった人事組織ネタ(8/21)

今週のネタ。

“Culture Engineer” Astro Teller on failure and brilliance

rework.withgoogle.com

Google re:workの記事。世界を変革させるイノベーションに取り組んでいる場合、たとえプロジェクトが失敗しても、評価し、ボーナスも出すよっていう記事。

たとえプロジェクトが失敗しても評価される・ボーナスも出るということで、失敗を恐れずに果敢にイノベーションのプロジェクトに挑むことができるようになるというような内容。イノベーションは基本失敗するから、その失敗を守るということが、成功には必要という感じ。

Alphabetではないけれども、ピクサーでも同じような失敗を許容する組織文化を作っていて、その内容がピクサー流 創造するちからに書かれている。この本も一読の価値ありです。

ピクサー流 創造するちから―小さな可能性から、大きな価値を生み出す方法

ピクサー流 創造するちから―小さな可能性から、大きな価値を生み出す方法

失敗しても評価されると、ゴミを生みだし続けることになる可能性もあると思うけれども、その辺はどうなんだろう。レベルの高いひとを採用し続けることで、その辺を回避しているのだろうか?

また、この記事で気になったもう1つの点は、Alphabetには、“culture engineer” っていう役割があるらしい。どんなことをしているのか、後で調べてみよう。

昨今のデジタルマーケターの「転職」や「独立」から考える日本企業の人材育成

昨今のデジタルマーケターの「転職」や「独立」から考える日本企業の人材育成 | ambassador labo

キリンでは、デジタルマーケティング部門を立ち上げるにあたり、社内から人材を移動するだけでなく外部からも積極的に人材を採用し、短期間で層の厚い組織転換を行うことに挑戦しました。

一般的に、日本企業においては「デジタルマーケティング」とは、あくまでデジタル領域のマーケティングの話であると認識されることが多く、組織の中でごく一部の人間がデジタル専任になることが多いようです。ただ、実際には顧客がスマホソーシャルメディアの普及によりデジタル化し、それにより企業側のマーケティングも過去のアナログからデジタルに変わらなければならない、というのが広い意味でのデジタルマーケティングへのシフトと言えます。

そういう意味で、デジタルマーケターの育成や評価に悩んでいる日本企業にとって、社外の人材と社内の人材を組み合わせて、チームでマーケティングのデジタルシフトに対応しようとしているキリンの取り組みは一つのヒントになるのではないかと思います。

マーケティングの文脈で語っているけど、他の領域でも参考になりそう。例えば、上の文章に、機械学習を何となく当てはめてみると・・・。

一般的に、日本企業においては「機械学習」とは、あくまでデータ分析領域の一部の話であると認識されることが多く、組織の中でごく一部の人間が機械学習専任になることが多いようです。
そういう意味で、機械学習エンジニアの育成や評価に悩んでいる日本企業にとって、社外の人材と社内の人材を組み合わせて、チームで機械学習導入に対応しようとしている取り組みは一つのヒントになるのではないかと思います。

なんとなく、ありそう。新しい領域が誕生し、その領域に対応していかなければならないときに、どう組織内にチームをつくるのかという問題の参考になりそう。

チームパフォーマンスモデルとは?

www.ryuzee.com

「なぜ自分がそこにいるのか」って、「上司の命令で・・・」とか、「会社の配属で・・・」っていう理由が放っておくと1番になってしまうと思うので、例え、そうであったとしても、明示的に「なぜ自分がそこにいるのか」を確認する行為は大事だなと思った、

Google Brain(機械学習研究部門)の15分ルール

元ソースはこちら。

m.reddit.com

新人のときに、よく言われたけど、改めて再確認ということで。

「社会を支えるPOCO」を家族に覚えてほしい--日本オラクルのファミリーデー

japan.zdnet.com

Oracleのファミリーデーの様子の記事。Javaを持っていたり、物理サーバを売っていたりする会社ということもあるとは思うけども、プログラミング教室をしたり、サーバを触ってみたり、いいなーという感じ。

自分の会社のファミリーデーって、あるにはあるけど、全然ファミリーデーって感じではないので、こういうのっていいなーって。親が働いてる雰囲気を子供も感じられるというのがいいなー。

Amazonのソフトウェアエンジニア面接

postd.cc

日本企業でも転職をしたことがないけれども、転職の話はいつか来るであろう?未来に役立つなと。 アメリカでのエンジニアの転職の話は、ちょくちょく聞くけれども、アメリカでの非エンジニア職以外での転職活動についてはどんな風なんだろうな?って思った。

電話面接とか、Skype面接とか、もっと日本でもやればいいのに。

今日は以上!