Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
データ中心の時代を生き抜くエンジニアに

知ってほしい10?のコト
2015/02/18 株式会社 オープンストリーム
CTO 寺田英雄
1
Copyright(C) Open Stream, Inc. All Rights Reserved.
自己紹介
■寺田英雄
■https://www.facebook.com/
hideo.terada.5
■1968年、大阪市生まれ
2
Copyright(C) Open Stream, Inc. All Rights Reserved.
経歴
■大阪大学工学部機械系/電子制御機械工学科
• Project-TEAM DoGA 初代メンバー:CG映画制作
• http://do...
Copyright(C) Open Stream, Inc. All Rights Reserved.
コンピュータ歴
■コンピュータ歴 36年目(小学校5年から)
■言語
• 大阪弁、標準語、英語(少々)
• Fortran, asm, ba...
Copyright(C) Open Stream, Inc. All Rights Reserved.
開発例
■画像認識関連
• ごみ焼却炉制御、鋳型組み立てロボット制御、トラックコンテナの荷降ろしロボッ
ト制御、自動車工場の鋼板検査、デパレ...
Copyright(C) Open Stream, Inc. All Rights Reserved.
その他
■執筆
• @IT: ドキュメントは最強のコミュニケーションツールである――Joelの機能仕様書入門 

(http://www.a...
鳴門のうずしお
屋久島の森
縄文杉
Copyright(C) Open Stream, Inc. All Rights Reserved.
アジェンダ
■データ中心時代とは?
■データ中心時代を生き抜くには?
■株式会社オープンストリームのご紹介
9
Copyright(C) Open Stream, Inc. All Rights Reserved.
どんなエンジニアに
なりたいですか?
10
00
Copyright(C) Open Stream, Inc. All Rights Reserved.
■とりあえず食べていけるエンジニア
■会社をリードするエンジニア
■業界をリードするエンジニア
■時代をリードするエンジニア
11
Copyright(C) Open Stream, Inc. All Rights Reserved.
■今日は、

⃝⃝をリードするエンジニアを目指す人

に向けてお話したいと思います
12
Copyright(C) Open Stream, Inc. All Rights Reserved.
データ中心の時代とは?
13
01
Copyright(C) Open Stream, Inc. All Rights Reserved.
■ビッグデータ
■スマートデバイス
■IoT*1 / M2M*2
■…
14
*1:Internet of Things
*2:Machin...
Copyright(C) Open Stream, Inc. All Rights Reserved.
■データ中心の時代とは、

良質なデータを持ち

そのデータを上手く活用できる

人や集団が、ビジネスや政治の

中心となって活躍する時代で...
Copyright(C) Open Stream, Inc. All Rights Reserved.
■いままで無理だった分野や場所でも

データが得られるようになり、

勘や経験ではなく

科学的に物事を判断できる範囲が

拡がる時代です。...
Copyright(C) Open Stream, Inc. All Rights Reserved.
■この流れは

今後、強まることはあっても、

弱まることはないでしょう。
17
Copyright(C) Open Stream, Inc. All Rights Reserved.
■そこでは、これまでITシステムで

主流だったものとは異なるタイプの

データを扱う必要があります。
18
Copyright(C) Open Stream, Inc. All Rights Reserved.
Type-I:いままでのITシステムで

扱っていたデータ
■数値(金額、日付、個数…)
■文字列(名前、住所、ID、URL…)
■バイト列...
Copyright(C) Open Stream, Inc. All Rights Reserved.
Type-II:データ中心時代に
さらに必要となるデータ
• • •
20
■数値(センサー系:温度、加速度、明るさ…)
■バイト列(BLO...
Copyright(C) Open Stream, Inc. All Rights Reserved.
■Type-IとType-IIは何がちがうのか?
21
Copyright(C) Open Stream, Inc. All Rights Reserved.
Type-I データ
■構造化可能
• RDBに素直に格納できる
• SQLで処理できる
■決定論的
• 誰かが書き換えない限り、

同じデ...
Copyright(C) Open Stream, Inc. All Rights Reserved.
Type-II データ
■非構造化(構造化不可)
• RDBでは素直に格納できない
• SQLだけでは処理できない
■確率論的
• 同じデー...
Copyright(C) Open Stream, Inc. All Rights Reserved.24
Type-I Type-II
構造化 できる/しやすい できない/しにくい
数値の性質 決定論的 確率論的
BLOB
画像・音声
その他...
Copyright(C) Open Stream, Inc. All Rights Reserved.
■データ中心時代とは、

Type-Iはもちろん、

Type-IIデータにも

対応しなけばならない時代です。
25
Copyright(C) Open Stream, Inc. All Rights Reserved.
Type-IIデータを扱うには、
数学的アルゴリズムが必要になってきます
■微分・積分
■行列・線形代数
■確率・統計
■パターン認識・機械...
Copyright(C) Open Stream, Inc. All Rights Reserved.
■ つまり、データ中心の時代とは、

数学の時代なのです。
27
Copyright(C) Open Stream, Inc. All Rights Reserved.
■数学が力を発揮する例を

見てみましょう。
28
Copyright(C) Open Stream, Inc. All Rights Reserved.
例1:月面サッカーの
ボール軌道計測
■20XX年、月面サッカー協会からの依頼
• 選手がキックしたボールの軌道を解析し、選手の特徴を分析し...
計測データ例
センサーからの位置データをプロット
Copyright(C) Open Stream, Inc. All Rights Reserved.
■計測誤差を取り除きたい!
31
Copyright(C) Open Stream, Inc. All Rights Reserved.
アイデア-1-1
(中学生級)
■誤差=ばらつき
■ばらつきを消すには?
■→平均をとろう!
32
移動平均を取った結果
• 平均範囲:i-5 i+5
• 赤いプロットが移動平均
• 最後まできれいな

放物線にならない。
• 最初と最後の部分の

データが欠ける。
Copyright(C) Open Stream, Inc. All Rights Reserved.
アイデア-1-2
(大学1 2年級)
■『重力場で投射された物体は

 放物線を描く』
• 高校物理の知識
■計測データ=放物線+誤差
■最...
Copyright(C) Open Stream, Inc. All Rights Reserved.
最小二乗法の考え方
35
y = f(x)
S1
S2
S3 SN
P1(x1, y1)
ˆy1 = f(x1)
計測データ P1 PNにつ...
Copyright(C) Open Stream, Inc. All Rights Reserved.
最小二乗法の結果
36
• 放物線をデータに当ては
めた
• 統計学的に最も妥当な放
物線が得られる
Copyright(C) Open Stream, Inc. All Rights Reserved.
例2:月面サッカー
リアルタイム計測編
■前述の計測システムが好評だったので、

次にリアルタイム化を依頼された。
■ボール飛行中にリアルタ...
Copyright(C) Open Stream, Inc. All Rights Reserved.
アイデア-2-1
(大学1 2年級)
■ボールが飛行中に放物線を求めたい。
■リアルタイムデータに最小二乗法を適用し
てみる。
38
Copyright(C) Open Stream, Inc. All Rights Reserved.
リアルタイム最小二乗法の
結果
39
Copyright(C) Open Stream, Inc. All Rights Reserved.
アイデア-2-2

(大学3 4年級)
■誤差のあるデータ列から、時々刻々と変
化する量(ボールの位置)を推定するに
は・・・
■カルマンフ...
Copyright(C) Open Stream, Inc. All Rights Reserved.
カルマンフィルタの結果
41
初期には少し乱れるが、i=25以降は良い軌道追従性を示している
Copyright(C) Open Stream, Inc. All Rights Reserved.
カルマンフィルタとは
■誤差を含む計測データを使って、時間と
ともに変化するシステムの状態を推定す
る手法
■直前の計測データだけあれば良い...
Copyright(C) Open Stream, Inc. All Rights Reserved.
センサー
カルマンフィルタの世界観
43
システムの
状態
(直接観測できない・
時間変化する)
外部入力
(システムの状態を変化させる)
...
Copyright(C) Open Stream, Inc. All Rights Reserved.
カルマンフィルタの数学モデル
44
現在
状態
=
直前の
状態
遷移
係数
外部
入力
+
システム
ノイズ+
•状態方程式
現在
状態
...
Copyright(C) Open Stream, Inc. All Rights Reserved.
月面サッカーの例では
■状態=[ボールの位置, ボールの速度]
■ニュートンの運動方程式を使って、状態方程式(遷移係数)を作成
■外部入力は...
Copyright(C) Open Stream, Inc. All Rights Reserved.
最小二乗法 vs
カルマンフィルタ
46
最小二乗
カルマン
フィルタ
メモリ負荷
大きい
(過去から現在までのセンサデ
ータを保持する必要...
Copyright(C) Open Stream, Inc. All Rights Reserved.
余談:宇宙船と
カルマンフィルター
■1960年代の宇宙開発において、カルマンフィルターは

大きな役割を果たした(ロケットの軌道制御)
4...
Copyright(C) Open Stream, Inc. All Rights Reserved.
GPSもカルマンフィルター*
48
• この円は、カルマンフィルター
で推定された誤差の大きさを
示しています。
• 円は最初大きいが、しば...
Copyright(C) Open Stream, Inc. All Rights Reserved.
フィルター理論は

マーケティングにも応用されつつある
■ 状態空間モデルによるインターネット広告のクリック率予測 

http://www...
Copyright(C) Open Stream, Inc. All Rights Reserved.
参考図書
50
Copyright(C) Open Stream, Inc. All Rights Reserved.
例2:カメラレンズの
キャリブレーション
■画像処理による物体の位置計測システム
■高精度に位置を計測したい
■レンズによる画像の歪が問題
...
Copyright(C) Open Stream, Inc. All Rights Reserved.
システム構成例
■トラックコンテナの自動荷降ろし制御@自動倉庫

天井に設置したカメラで、コンテナの位置を計測し、クレーンに指示値を送る
5...
Copyright(C) Open Stream, Inc. All Rights Reserved.
像の歪とは?
53
型歪糸巻形歪
オリジナル
Copyright(C) Open Stream, Inc. All Rights Reserved.
歪みを消すには?
■大きさが分かっている物体を撮影
■歪んだ画像データから、

元の画像への変換式を求める
■レンズの歪の特性を考える
• ...
Copyright(C) Open Stream, Inc. All Rights Reserved.
■アイデア図式
55
大きさ既知の
物体

P(X,Y)
レンズ
f()
歪んだ
画像
p(x,y)
p(x,y)=f(P)
大きさ既知の
...
Copyright(C) Open Stream, Inc. All Rights Reserved.
■歪=データに含まれる誤差
• レンズの特性、製造誤差、カメラの製造誤差
• デジタル誤差(量子化誤差)
■誤差を消す=最小二乗法
• レン...
Copyright(C) Open Stream, Inc. All Rights Reserved.
キャリブレーションプレート
(較正基準器)
■市松模様や、ドット格子を良く使います。

(画像認識アルゴリズムで簡単にメッシュ点の位置(点群...
Copyright(C) Open Stream, Inc. All Rights Reserved.
余談:スバルのeyesight
■ステレオカメラを利用している
■経年変化とキャリブレーションが課題の一つ
■どうやって解決したか?・・・調...
Copyright(C) Open Stream, Inc. All Rights Reserved.
まとめ
■データ中心時代には Type-II データを

扱うことが必要
■Type-II データの処理には

数学的知識が欠かせない
■デ...
Copyright(C) Open Stream, Inc. All Rights Reserved.
データ中心の時代を
生き抜けるエンジニアになるには?
60
02
Copyright(C) Open Stream, Inc. All Rights Reserved.
問
データ中心の時代を

生き抜けるエンジニアに

なるには?
61
Copyright(C) Open Stream, Inc. All Rights Reserved.
答
変化に強い

エンジニアになること。
62
Copyright(C) Open Stream, Inc. All Rights Reserved.
理由
■ITの世界は変化が激しく、『一寸先は闇』
の世界です。
■個別のトレンドを全て追いかけるのは

不可能であり、不毛です。
■変化への...
–チャールズ・ダーウィン
最も強い者が生き残るのではなく、
最も賢い者が生き延びるのでもない。
唯一生き残ることができるのは、
変化できる者である
Copyright(C) Open Stream, Inc. All Rights Reserved.
問
変化に強いエンジニアに

なるには?
65
Copyright(C) Open Stream, Inc. All Rights Reserved.
答
技術を

基礎・基本から理解することを

重視して学び続けること
66
Copyright(C) Open Stream, Inc. All Rights Reserved.
理由
■基礎知識・基本原理は普遍的であり、

時代を経ても変化しません。
■一度学べば、一生モノです。
■新しい技術へのキャッチアップが早く...
Copyright(C) Open Stream, Inc. All Rights Reserved.
データ中心の時代の
基礎・基本とは?
68
03
Copyright(C) Open Stream, Inc. All Rights Reserved.
データ中心時代の
ITエンジニアに必要な基礎・基本
■数学(応用数学・統計学)
■コンピュータサイエンス
■国語力
■英語力
■勉強力
69...
Copyright(C) Open Stream, Inc. All Rights Reserved.
数学
70
04
Copyright(C) Open Stream, Inc. All Rights Reserved.
数学を学ぶ人へのヒント
■学校数学と応用数学との違い
■数学は言葉
■数学はモデル
■エンジニアの利点を活かす
71
Copyright(C) Open Stream, Inc. All Rights Reserved.
学校数学 vs 応用数学
■学校数学
• 数学の問題を解くために数学を学ぶ
• 意味・目的が分からない(ように思える)
• 『紙と鉛筆(手計...
Copyright(C) Open Stream, Inc. All Rights Reserved.
数学は言葉
■数学は『ワケワカラン記号の羅列』
ではありません。数学語という世
界共通の言語です。

■数学語を日本語に訳したり、日本
語を...
Copyright(C) Open Stream, Inc. All Rights Reserved.
数学はモデル
■モデル=模型
■数学は、計算のためだけのものではなく、

現実の問題を模型化するためにあります。
■数学的モデルは、コンピュ...
Copyright(C) Open Stream, Inc. All Rights Reserved.
エンジニアの利点を活かして
数学を学ぼう
■数学をコンピュータ上で動かしながら

勉強すれば、早く深く理解できます。
■近年、数学向きのツー...
Copyright(C) Open Stream, Inc. All Rights Reserved.
オススメの勉強シナリオ
1.興味のある具体的例題を選ぶ
2.コンピュータ上で動かして例題を解く
3.そこに使われている数学手法を勉強する
基...
Copyright(C) Open Stream, Inc. All Rights Reserved.
ダメな勉強シナリオ
■教科書を1ページ目から勉強していく
■途中で理解できない箇所がでてきて、

先へ進めなくなって挫折・・・
77
Copyright(C) Open Stream, Inc. All Rights Reserved.
おすすめ本
■高校までの数学に自信がない人向け
78
• 高校3年分の内容を1冊に
• 106時間分の講義音声ファイル
• 例題の詳細解答P...
Copyright(C) Open Stream, Inc. All Rights Reserved.
■大学で数学を習った人向け
79
Copyright(C) Open Stream, Inc. All Rights Reserved.
おすすめドラマ
■ NUMB3RS ナンバーズ 天才数学者の事件ファイル
80
• LAを舞台とした刑事ドラマ
• FBI捜査官の兄、天才数...
Copyright(C) Open Stream, Inc. All Rights Reserved.
おすすめ映画
■ イミテーション・ゲーム (3月13日公開)
81
• 数学者アラン・チューリングの生涯を描いた映画
• アインシュタインと...
Copyright(C) Open Stream, Inc. All Rights Reserved.
機械学習を勉強しよう!
■おすすめする理由
• あらゆる数学が使われていて題材の宝庫
• よいツール・ライブラリが ってきている

(Pyt...
Copyright(C) Open Stream, Inc. All Rights Reserved.
パターン認識器の共通形
83
入力
データ
特徴抽出
特徴量
データ
判別器
答
出力
Copyright(C) Open Stream, Inc. All Rights Reserved.
Deep Learning以前の
パターン認識
84
入力
データ
特徴抽出
特徴量
データ
判別器
答
出力
従来法
人間(専門家)が設計...
Copyright(C) Open Stream, Inc. All Rights Reserved.
Deep Learningによる
パターン認識
85
入力
データ
特徴抽出
特徴量
データ
判別器
答
出力
従来法
人間(専門家)が設計...
Copyright(C) Open Stream, Inc. All Rights Reserved.
word2vec
■Deep Learningを文書データに適用
■単語の意味を『意味ベクトルの合成値』
として表現できる
■King - ...
Copyright(C) Open Stream, Inc. All Rights Reserved.
機械学習の注意点
■OSS等が充実してきており学習器は誰でもすぐ使えます。
■しかし、結局は機械的な処理なので、どんな変なデータを
入力して...
Copyright(C) Open Stream, Inc. All Rights Reserved.
Deep Learningの
参考書
88
■ まだ日本語の文献は少ないです。
Copyright(C) Open Stream, Inc. All Rights Reserved.
コンピュータサイエンス
89
05
Copyright(C) Open Stream, Inc. All Rights Reserved.
日本の平均的な
エンジニアの問題
■コンピュータの専門家ではなく、

プログラミングやツールの専門家に

なってしまっている
■数学を駆使し...
Copyright(C) Open Stream, Inc. All Rights Reserved.
コンピュータサイエンス
■ コンピュータ的思考の原理・科学
■ どのような原理でコンピュータが動いているか
■ 課題を解決するためには、

...
Copyright(C) Open Stream, Inc. All Rights Reserved.
データ中心時代の
コンピュータサイエンス?
■ソフトウェア工学よりも

コンピュータサイエンスが重視される時代
• ソフトウェアを『いかに上...
Copyright(C) Open Stream, Inc. All Rights Reserved.
IT業界の先行指標
CMUの動向
■カーネギーメロン大学(CMU)

コンピュータサイエンス学科(CSD)の

カリキュラム改革(2011年...
Copyright(C) Open Stream, Inc. All Rights Reserved.
CMUの危機意識
■受験テクニックと化したJava入試により

コンピュータ分野に対する

学生のイメージの低下
• 『ITは知的な内容と︎...
Copyright(C) Open Stream, Inc. All Rights Reserved.
Javaの功罪(by CMU)
■Javaはアプリ開発には素晴らしい言語
■しかし『温室育ち』のプログラマを大量発生させた
■ライブラリや環...
Copyright(C) Open Stream, Inc. All Rights Reserved.
関数型プログラミングが
重要な理由
■ビッグデータには並列計算が必要
■CPUのマルチコア化
■オブジェクト指向は並列計算に向かない
• 反...
Copyright(C) Open Stream, Inc. All Rights Reserved.
順序依存のないアルゴリズムは
並列化できる
97
x1,t x2,t x3,t xn,t時刻 t ・・・
時刻 t+1 x1,t+1 x2,...
Copyright(C) Open Stream, Inc. All Rights Reserved.
順序依存のあるアルゴリズムは
並列化できない
98
x1,t x2,t x3,t xn,t時刻 t ・・・
時刻 t+1 x1,t+1 x2...
Copyright(C) Open Stream, Inc. All Rights Reserved.
並列化できるかどうかを
コードから自動的に判定できるか?
■ オブジェクト指向(手続き型)
• 判定できない。
• g()によりobjのプロ...
Copyright(C) Open Stream, Inc. All Rights Reserved.
■関数型言語では、

自動並列化コンパイラが作成しやすい
■OO言語では、

自動並列化は非常に困難
100
Copyright(C) Open Stream, Inc. All Rights Reserved.
データ中心時代の
『データ構造とアルゴリズム』
■従来の前提
• CPUは1個、シーケンシャルな処理をいかに効
率化するか?
• 手続き型プ...
Copyright(C) Open Stream, Inc. All Rights Reserved.
コンピュータサイエンス
まとめ
■コンピュータ技術の根底には

きちんと原理・科学がある
■時代の要請に応じて重点が変化
• Web→ビッグ...
Copyright(C) Open Stream, Inc. All Rights Reserved.
国語力
103
06
Copyright(C) Open Stream, Inc. All Rights Reserved.
とにかくこれを読もう!
■データは現実世界での意味づけ、
ストーリーがなければ活用でき
ません。
■人間は、最終的には言葉でのス
トーリー化...
Copyright(C) Open Stream, Inc. All Rights Reserved.
図解主義の危険性
■図やイラストは分かりやすいため、逆に
『分かった気になる』危険性がある。
■いざ文章に書いてみようとしたら、書け
ない!...
Copyright(C) Open Stream, Inc. All Rights Reserved.
参考:Amazon社の
ナラティブ経営
■ナラティブ(説話的・物語的)
■ アマゾンの会議は30分間の沈黙から始まる
• http://as...
Copyright(C) Open Stream, Inc. All Rights Reserved.
英語力
107
07
Copyright(C) Open Stream, Inc. All Rights Reserved.
私は英語が苦手です
■この本のやり方で勉強しています
■ヒアリング・発音重視
■脳の学習のクセを利用
■エンジニアは英語の読み書きは

でき...
Copyright(C) Open Stream, Inc. All Rights Reserved.
勉強力
109
08
Copyright(C) Open Stream, Inc. All Rights Reserved.
エンジニアの勉強で
大事なこと
■トップダウンとボトムアップのバランス
■インプットとアウトプットのバランス
■指標を使って成長を実感
110
Copyright(C) Open Stream, Inc. All Rights Reserved.
■トップダウン型の勉強法
• まず問題を解いてみる。分からない箇所を逆にた
どりながら教科書を読む
■ボトムアップ型の勉強法
• まず教科書...
Copyright(C) Open Stream, Inc. All Rights Reserved.
伸び悩むエンジニアは
トップダウンだけ
■『すぐに役立つ』TIPSが大好き
■Qiitaは読むだけ
■『いまどきの』とか『イケてる』という
...
Copyright(C) Open Stream, Inc. All Rights Reserved.
まず『やってみる』ことは大切
しかし・・・
■『やってみた』は TIPS/How to 知識
■for What/Why 知識を結びつけるこ...
Copyright(C) Open Stream, Inc. All Rights Reserved.
初めトップダウン
途中ボトムアップ、がオススメ
■新しい分野にチャレンジする時、

『まずやってみる』(例題・サンプル)
■やった結果を調べ...
Copyright(C) Open Stream, Inc. All Rights Reserved.
インプットとアウトプット
■インプット
• 知識を頭に入れていく
■アウトプット
• インプットした知識を外に出す、実際に使う
115
Copyright(C) Open Stream, Inc. All Rights Reserved.
インプットとは覚えるのではなく
理解すること
■ダメなエンジニア
• When, Howが中心
• 仕事を覚える=TIPSをたくさん覚えるこ...
Copyright(C) Open Stream, Inc. All Rights Reserved.
伸び悩むエンジニアは
インプットだけ
■技術書を沢山買っている
• オライリーへの貢献が半端ない!
■勉強会とかセミナーに良く行く
• けど...
Copyright(C) Open Stream, Inc. All Rights Reserved.
アウトプットするために
インプットしよう
■勉強会を主催してみる
■ブログに書いてみる
■デモプログラムを作る
■コンテストに出場してみる
...
Copyright(C) Open Stream, Inc. All Rights Reserved.
指標の大切さ
■ゴール指標
• 資格取得、⃝⃝完成、etc.
■日々の指標
• 毎日何分やったか?など
• 進 の見える化=小さな達成感の積...
Copyright(C) Open Stream, Inc. All Rights Reserved.
最後のまとめ
■データ中心の時代とは数学の時代
■技術の進化により数学のイメージが変わる、
学び方も変わる
■どんな時代でも生き残れるエンジ...
Upcoming SlideShare
Loading in …5
×

データ中心の時代を生き抜くエンジニアに知ってほしい10?のこと

4,317 views

Published on

2015/02/18 フォスターネット セミナー用

Published in: Engineering

データ中心の時代を生き抜くエンジニアに知ってほしい10?のこと

  1. 1. データ中心の時代を生き抜くエンジニアに
 知ってほしい10?のコト 2015/02/18 株式会社 オープンストリーム CTO 寺田英雄 1
  2. 2. Copyright(C) Open Stream, Inc. All Rights Reserved. 自己紹介 ■寺田英雄 ■https://www.facebook.com/ hideo.terada.5 ■1968年、大阪市生まれ 2
  3. 3. Copyright(C) Open Stream, Inc. All Rights Reserved. 経歴 ■大阪大学工学部機械系/電子制御機械工学科 • Project-TEAM DoGA 初代メンバー:CG映画制作 • http://doga.jp/ ■仕事歴 • 1992 IHI入社・メカトロ総合開発センター所属 • 2007 某モバイル動画ベンチャー 入社 • 2012 オープンストリーム入社 • 2014 オープンストリームCTO 3
  4. 4. Copyright(C) Open Stream, Inc. All Rights Reserved. コンピュータ歴 ■コンピュータ歴 36年目(小学校5年から) ■言語 • 大阪弁、標準語、英語(少々) • Fortran, asm, basic, C/C++/Obj-C, Java, CUDA,
 Python, Ruby ■分野 • 画像認識、CG、ストリーミングシステム • FA制御、Linux/Windowsデバイスドライバ、CADシステム • モバイル・アプリケーション(iOS/Android) • 機械学習、数理アルゴリズム、データ解析 4
  5. 5. Copyright(C) Open Stream, Inc. All Rights Reserved. 開発例 ■画像認識関連 • ごみ焼却炉制御、鋳型組み立てロボット制御、トラックコンテナの荷降ろしロボッ ト制御、自動車工場の鋼板検査、デパレタイザー用3次元認識 • 監視カメラ用ハードディスクレコーダー • 乗用車用、歩行者検知システム(R&D) ■動画ストリーミング • 携帯電話用コーデック、画像・音声同期再生エンジン、マルチキャスト動画配信 ■その他 • C-HTML編集エディタ、GTコジェネ制御ロジックCAD • Oracle用 C++ ORマッパーの開発 • 電子書籍フォーマット&デコーダ生成システムの開発 • DRM動画配信アプリ&状態マシンフレームワーク 5
  6. 6. Copyright(C) Open Stream, Inc. All Rights Reserved. その他 ■執筆 • @IT: ドキュメントは最強のコミュニケーションツールである――Joelの機能仕様書入門 
 (http://www.atmarkit.co.jp/ait/articles/1412/15/news023.html) • ITPro: ログ収集基盤のFluentdとFlume NG、どちらが使いやすい? 
 (http://itpro.nikkeibp.co.jp/article/COLUMN/20121122/439421/) ■資格 • 統計検定2級 ■趣味 • 料理、音楽、読書、演芸鑑賞、旅行・ドライブ・アウトドア、写真、自転車、映画・海外ド ラマ、工作、水彩画(最近やってません…) ■標語 • なんでもやってみよう! • 理論と現実の融合 6
  7. 7. 鳴門のうずしお
  8. 8. 屋久島の森 縄文杉
  9. 9. Copyright(C) Open Stream, Inc. All Rights Reserved. アジェンダ ■データ中心時代とは? ■データ中心時代を生き抜くには? ■株式会社オープンストリームのご紹介 9
  10. 10. Copyright(C) Open Stream, Inc. All Rights Reserved. どんなエンジニアに なりたいですか? 10 00
  11. 11. Copyright(C) Open Stream, Inc. All Rights Reserved. ■とりあえず食べていけるエンジニア ■会社をリードするエンジニア ■業界をリードするエンジニア ■時代をリードするエンジニア 11
  12. 12. Copyright(C) Open Stream, Inc. All Rights Reserved. ■今日は、
 ⃝⃝をリードするエンジニアを目指す人
 に向けてお話したいと思います 12
  13. 13. Copyright(C) Open Stream, Inc. All Rights Reserved. データ中心の時代とは? 13 01
  14. 14. Copyright(C) Open Stream, Inc. All Rights Reserved. ■ビッグデータ ■スマートデバイス ■IoT*1 / M2M*2 ■… 14 *1:Internet of Things *2:Machine to Machine
  15. 15. Copyright(C) Open Stream, Inc. All Rights Reserved. ■データ中心の時代とは、
 良質なデータを持ち
 そのデータを上手く活用できる
 人や集団が、ビジネスや政治の
 中心となって活躍する時代です。 15
  16. 16. Copyright(C) Open Stream, Inc. All Rights Reserved. ■いままで無理だった分野や場所でも
 データが得られるようになり、
 勘や経験ではなく
 科学的に物事を判断できる範囲が
 拡がる時代です。 16
  17. 17. Copyright(C) Open Stream, Inc. All Rights Reserved. ■この流れは
 今後、強まることはあっても、
 弱まることはないでしょう。 17
  18. 18. Copyright(C) Open Stream, Inc. All Rights Reserved. ■そこでは、これまでITシステムで
 主流だったものとは異なるタイプの
 データを扱う必要があります。 18
  19. 19. Copyright(C) Open Stream, Inc. All Rights Reserved. Type-I:いままでのITシステムで
 扱っていたデータ ■数値(金額、日付、個数…) ■文字列(名前、住所、ID、URL…) ■バイト列(BLOB)(画像、音声、テキスト…) 19
  20. 20. Copyright(C) Open Stream, Inc. All Rights Reserved. Type-II:データ中心時代に さらに必要となるデータ • • • 20 ■数値(センサー系:温度、加速度、明るさ…) ■バイト列(BLOB)(画像、音声、テキスト…) • 内容を認識したい
  21. 21. Copyright(C) Open Stream, Inc. All Rights Reserved. ■Type-IとType-IIは何がちがうのか? 21
  22. 22. Copyright(C) Open Stream, Inc. All Rights Reserved. Type-I データ ■構造化可能 • RDBに素直に格納できる • SQLで処理できる ■決定論的 • 誰かが書き換えない限り、
 同じデータは、何度取得しても値は変わらない ■中身を見ないBLOB(画像、音声) • 画像を表示したり、音声を再生したりはするが、画像の 内容は見ない 22
  23. 23. Copyright(C) Open Stream, Inc. All Rights Reserved. Type-II データ ■非構造化(構造化不可) • RDBでは素直に格納できない • SQLだけでは処理できない ■確率論的 • 同じデータ源(対象物)を計測しても、
 取得するたびに値が微妙に変わる
 →ノイズや誤差 ■中身を見るBLOB(画像・音声) • 誰が写っている?(画像認識) • 何と言っている?(音声認識) 23
  24. 24. Copyright(C) Open Stream, Inc. All Rights Reserved.24 Type-I Type-II 構造化 できる/しやすい できない/しにくい 数値の性質 決定論的 確率論的 BLOB 画像・音声 その他 中身は見ない 中身を理解したい
  25. 25. Copyright(C) Open Stream, Inc. All Rights Reserved. ■データ中心時代とは、
 Type-Iはもちろん、
 Type-IIデータにも
 対応しなけばならない時代です。 25
  26. 26. Copyright(C) Open Stream, Inc. All Rights Reserved. Type-IIデータを扱うには、 数学的アルゴリズムが必要になってきます ■微分・積分 ■行列・線形代数 ■確率・統計 ■パターン認識・機械学習 ■信号処理 ■制御理論 ■・・・ 26
  27. 27. Copyright(C) Open Stream, Inc. All Rights Reserved. ■ つまり、データ中心の時代とは、
 数学の時代なのです。 27
  28. 28. Copyright(C) Open Stream, Inc. All Rights Reserved. ■数学が力を発揮する例を
 見てみましょう。 28
  29. 29. Copyright(C) Open Stream, Inc. All Rights Reserved. 例1:月面サッカーの ボール軌道計測 ■20XX年、月面サッカー協会からの依頼 • 選手がキックしたボールの軌道を解析し、選手の特徴を分析したい。 • ボールの内蔵IoTセンサーで、リアルタイムで位置を計測できる。 • ただし、計測誤差が発生している。(コストダウンのため!) 29
  30. 30. 計測データ例 センサーからの位置データをプロット
  31. 31. Copyright(C) Open Stream, Inc. All Rights Reserved. ■計測誤差を取り除きたい! 31
  32. 32. Copyright(C) Open Stream, Inc. All Rights Reserved. アイデア-1-1 (中学生級) ■誤差=ばらつき ■ばらつきを消すには? ■→平均をとろう! 32
  33. 33. 移動平均を取った結果 • 平均範囲:i-5 i+5 • 赤いプロットが移動平均 • 最後まできれいな
 放物線にならない。 • 最初と最後の部分の
 データが欠ける。
  34. 34. Copyright(C) Open Stream, Inc. All Rights Reserved. アイデア-1-2 (大学1 2年級) ■『重力場で投射された物体は
  放物線を描く』 • 高校物理の知識 ■計測データ=放物線+誤差 ■最小二乗法で誤差を取り除く 34
  35. 35. Copyright(C) Open Stream, Inc. All Rights Reserved. 最小二乗法の考え方 35 y = f(x) S1 S2 S3 SN P1(x1, y1) ˆy1 = f(x1) 計測データ P1 PNについて、 S1 SNの合計が最小となるような
 直線 y=f(x) を求める。 直線以外にも使える
  36. 36. Copyright(C) Open Stream, Inc. All Rights Reserved. 最小二乗法の結果 36 • 放物線をデータに当ては めた • 統計学的に最も妥当な放 物線が得られる
  37. 37. Copyright(C) Open Stream, Inc. All Rights Reserved. 例2:月面サッカー リアルタイム計測編 ■前述の計測システムが好評だったので、
 次にリアルタイム化を依頼された。 ■ボール飛行中にリアルタイムにノイズを取 り除いて画面に表示したい ■他のセンサー等の追加設備はない。
 (コストダウンのため!) 37
  38. 38. Copyright(C) Open Stream, Inc. All Rights Reserved. アイデア-2-1 (大学1 2年級) ■ボールが飛行中に放物線を求めたい。 ■リアルタイムデータに最小二乗法を適用し てみる。 38
  39. 39. Copyright(C) Open Stream, Inc. All Rights Reserved. リアルタイム最小二乗法の 結果 39
  40. 40. Copyright(C) Open Stream, Inc. All Rights Reserved. アイデア-2-2
 (大学3 4年級) ■誤差のあるデータ列から、時々刻々と変 化する量(ボールの位置)を推定するに は・・・ ■カルマンフィルタを使おう! 40
  41. 41. Copyright(C) Open Stream, Inc. All Rights Reserved. カルマンフィルタの結果 41 初期には少し乱れるが、i=25以降は良い軌道追従性を示している
  42. 42. Copyright(C) Open Stream, Inc. All Rights Reserved. カルマンフィルタとは ■誤差を含む計測データを使って、時間と ともに変化するシステムの状態を推定す る手法 ■直前の計測データだけあれば良い
 (過去のデータを参照する必要ない) 42
  43. 43. Copyright(C) Open Stream, Inc. All Rights Reserved. センサー カルマンフィルタの世界観 43 システムの 状態 (直接観測できない・ 時間変化する) 外部入力 (システムの状態を変化させる) 観測者 (人間) 計測データ ノイズ • 計測データ知っている • 外部入力知っている • システムの癖知っている • ノイズは正規分布
  44. 44. Copyright(C) Open Stream, Inc. All Rights Reserved. カルマンフィルタの数学モデル 44 現在 状態 = 直前の 状態 遷移 係数 外部 入力 + システム ノイズ+ •状態方程式 現在 状態 計測値 観測 係数 = 観測 ノイズ + •観測方程式 この2つの方程式を繰り返し適用することで、 状態の推定値の精度を徐々に高めていく。 欲しい答 センサで 得られる 世界観が そのまま表現されている!
  45. 45. Copyright(C) Open Stream, Inc. All Rights Reserved. 月面サッカーの例では ■状態=[ボールの位置, ボールの速度] ■ニュートンの運動方程式を使って、状態方程式(遷移係数)を作成 ■外部入力は月の重力(重力加速度) ■観測できるのはボールの位置だけ 45 青が計測値 赤が推定値
  46. 46. Copyright(C) Open Stream, Inc. All Rights Reserved. 最小二乗法 vs カルマンフィルタ 46 最小二乗 カルマン フィルタ メモリ負荷 大きい (過去から現在までのセンサデ ータを保持する必要あり) 小さい (直近のセンサデータだけで良 い) 計算負荷 徐々に大きくなる 一定
  47. 47. Copyright(C) Open Stream, Inc. All Rights Reserved. 余談:宇宙船と カルマンフィルター ■1960年代の宇宙開発において、カルマンフィルターは
 大きな役割を果たした(ロケットの軌道制御) 47 アポロ宇宙船の 誘導コンピュータ (ソースコードが公開されている) 月ロケットの軌道制御 赤:ロケットの自己位置計測値 青:カルマンフィルタ推定軌道 緑:真の軌道
  48. 48. Copyright(C) Open Stream, Inc. All Rights Reserved. GPSもカルマンフィルター* 48 • この円は、カルマンフィルター で推定された誤差の大きさを 示しています。 • 円は最初大きいが、しばらく すると小さくなる。繰り返し 更新により推定誤差が小さく なっていくためです。 *パーティクルフィルター等が使われている可能性もあります
  49. 49. Copyright(C) Open Stream, Inc. All Rights Reserved. フィルター理論は
 マーケティングにも応用されつつある ■ 状態空間モデルによるインターネット広告のクリック率予測 
 http://www.orsj.or.jp/archive2/or57-10/or57_10_574.pdf
 *この例では、パーティクルフィルタ(粒子フィルタ)を用いて います。これは、カルマンフィルタと似た効果のある別のフィル タ手法です。 49
  50. 50. Copyright(C) Open Stream, Inc. All Rights Reserved. 参考図書 50
  51. 51. Copyright(C) Open Stream, Inc. All Rights Reserved. 例2:カメラレンズの キャリブレーション ■画像処理による物体の位置計測システム ■高精度に位置を計測したい ■レンズによる画像の歪が問題
 (キャリブレーション:較正) 51
  52. 52. Copyright(C) Open Stream, Inc. All Rights Reserved. システム構成例 ■トラックコンテナの自動荷降ろし制御@自動倉庫
 天井に設置したカメラで、コンテナの位置を計測し、クレーンに指示値を送る 52 天井 コンテナコンベア コンテナ カメラ 天井クレーン • クレーン位置精度:20mm • 天井カメラピクセル精度:5mm →4ピクセルずれるとOUT!! 自動倉庫へ
  53. 53. Copyright(C) Open Stream, Inc. All Rights Reserved. 像の歪とは? 53 型歪糸巻形歪 オリジナル
  54. 54. Copyright(C) Open Stream, Inc. All Rights Reserved. 歪みを消すには? ■大きさが分かっている物体を撮影 ■歪んだ画像データから、
 元の画像への変換式を求める ■レンズの歪の特性を考える • 歪の量は同心円状に分布、中心からの距離の関数 になる • 多項式関数で近似できることが知られている 54
  55. 55. Copyright(C) Open Stream, Inc. All Rights Reserved. ■アイデア図式 55 大きさ既知の 物体
 P(X,Y) レンズ f() 歪んだ 画像 p(x,y) p(x,y)=f(P) 大きさ既知の 物体
 P(X,Y) 逆レンズ g() 歪んだ 画像 p(x,y) P(X,Y)=g(p) g()=f-1() ←逆変換
  56. 56. Copyright(C) Open Stream, Inc. All Rights Reserved. ■歪=データに含まれる誤差 • レンズの特性、製造誤差、カメラの製造誤差 • デジタル誤差(量子化誤差) ■誤差を消す=最小二乗法 • レンズ中心からの距離xに対する4∼6次方程式が 目的関数として良く使われる。 ■データ数が多いほど解が安定する 56
  57. 57. Copyright(C) Open Stream, Inc. All Rights Reserved. キャリブレーションプレート (較正基準器) ■市松模様や、ドット格子を良く使います。
 (画像認識アルゴリズムで簡単にメッシュ点の位置(点群)が求まります)
 →これを最小二乗法で処理して、変換関数 g()を求めます。 ■OpenCVにも、この種のアルゴリズムが含まれています。 57
  58. 58. Copyright(C) Open Stream, Inc. All Rights Reserved. 余談:スバルのeyesight ■ステレオカメラを利用している ■経年変化とキャリブレーションが課題の一つ ■どうやって解決したか?・・・調べてみてください 58
  59. 59. Copyright(C) Open Stream, Inc. All Rights Reserved. まとめ ■データ中心時代には Type-II データを
 扱うことが必要 ■Type-II データの処理には
 数学的知識が欠かせない ■データを扱うあらゆる分野で数学が重要 59
  60. 60. Copyright(C) Open Stream, Inc. All Rights Reserved. データ中心の時代を 生き抜けるエンジニアになるには? 60 02
  61. 61. Copyright(C) Open Stream, Inc. All Rights Reserved. 問 データ中心の時代を
 生き抜けるエンジニアに
 なるには? 61
  62. 62. Copyright(C) Open Stream, Inc. All Rights Reserved. 答 変化に強い
 エンジニアになること。 62
  63. 63. Copyright(C) Open Stream, Inc. All Rights Reserved. 理由 ■ITの世界は変化が激しく、『一寸先は闇』 の世界です。 ■個別のトレンドを全て追いかけるのは
 不可能であり、不毛です。 ■変化への対応力を高めることが肝心です。 63
  64. 64. –チャールズ・ダーウィン 最も強い者が生き残るのではなく、 最も賢い者が生き延びるのでもない。 唯一生き残ることができるのは、 変化できる者である
  65. 65. Copyright(C) Open Stream, Inc. All Rights Reserved. 問 変化に強いエンジニアに
 なるには? 65
  66. 66. Copyright(C) Open Stream, Inc. All Rights Reserved. 答 技術を
 基礎・基本から理解することを
 重視して学び続けること 66
  67. 67. Copyright(C) Open Stream, Inc. All Rights Reserved. 理由 ■基礎知識・基本原理は普遍的であり、
 時代を経ても変化しません。 ■一度学べば、一生モノです。 ■新しい技術へのキャッチアップが早くなり ます。 ■他の分野に応用することで、
 新たな創造につながることもあります。 67
  68. 68. Copyright(C) Open Stream, Inc. All Rights Reserved. データ中心の時代の 基礎・基本とは? 68 03
  69. 69. Copyright(C) Open Stream, Inc. All Rights Reserved. データ中心時代の ITエンジニアに必要な基礎・基本 ■数学(応用数学・統計学) ■コンピュータサイエンス ■国語力 ■英語力 ■勉強力 69 どうやって学ぶか? どんな時代にも 通用する 基礎力 }
  70. 70. Copyright(C) Open Stream, Inc. All Rights Reserved. 数学 70 04
  71. 71. Copyright(C) Open Stream, Inc. All Rights Reserved. 数学を学ぶ人へのヒント ■学校数学と応用数学との違い ■数学は言葉 ■数学はモデル ■エンジニアの利点を活かす 71
  72. 72. Copyright(C) Open Stream, Inc. All Rights Reserved. 学校数学 vs 応用数学 ■学校数学 • 数学の問題を解くために数学を学ぶ • 意味・目的が分からない(ように思える) • 『紙と鉛筆(手計算)』で解かないといけない ■応用数学 • 現実の問題を解くためのツールになる • 意味・目的がはっきりしている • コンピュータで解ければ良い 72
  73. 73. Copyright(C) Open Stream, Inc. All Rights Reserved. 数学は言葉 ■数学は『ワケワカラン記号の羅列』 ではありません。数学語という世 界共通の言語です。
 ■数学語を日本語に訳したり、日本 語を数学語に訳したりできます。
 ■まずは数学語を和訳できるように なりましょう。 73 『数学は言葉』新井紀子著
  74. 74. Copyright(C) Open Stream, Inc. All Rights Reserved. 数学はモデル ■モデル=模型 ■数学は、計算のためだけのものではなく、
 現実の問題を模型化するためにあります。 ■数学的モデルは、コンピュータとの
 親和性が高いです。 ■方程式の解き方よりも、数学モデルの作り方を
 学ぶほうが実践的です。 74
  75. 75. Copyright(C) Open Stream, Inc. All Rights Reserved. エンジニアの利点を活かして 数学を学ぼう ■数学をコンピュータ上で動かしながら
 勉強すれば、早く深く理解できます。 ■近年、数学向きのツールが多数登場 • R • Python (IPythonがおすすめ!) • Julia (最近注目) • 数式処理ソフト(Mathematia, Maxima, Maple…) 75
  76. 76. Copyright(C) Open Stream, Inc. All Rights Reserved. オススメの勉強シナリオ 1.興味のある具体的例題を選ぶ 2.コンピュータ上で動かして例題を解く 3.そこに使われている数学手法を勉強する 基準:ある程度納得できるまで。
 (多少わからなくても立ち止まらない) 4.同じ数学手法が使う別の分野の問題を調べる 76
  77. 77. Copyright(C) Open Stream, Inc. All Rights Reserved. ダメな勉強シナリオ ■教科書を1ページ目から勉強していく ■途中で理解できない箇所がでてきて、
 先へ進めなくなって挫折・・・ 77
  78. 78. Copyright(C) Open Stream, Inc. All Rights Reserved. おすすめ本 ■高校までの数学に自信がない人向け 78 • 高校3年分の内容を1冊に • 106時間分の講義音声ファイル • 例題の詳細解答PDFファイル582ページ • 独習向き
  79. 79. Copyright(C) Open Stream, Inc. All Rights Reserved. ■大学で数学を習った人向け 79
  80. 80. Copyright(C) Open Stream, Inc. All Rights Reserved. おすすめドラマ ■ NUMB3RS ナンバーズ 天才数学者の事件ファイル 80 • LAを舞台とした刑事ドラマ • FBI捜査官の兄、天才数学者の弟が協力し、数学を使っ て犯罪捜査 • 劇中で使われる数学は本物(制作にはプロの数学者) • 解説本も出ている • 数学を知らなくても楽しめる • BS放送 D-Life で再放送中
  81. 81. Copyright(C) Open Stream, Inc. All Rights Reserved. おすすめ映画 ■ イミテーション・ゲーム (3月13日公開) 81 • 数学者アラン・チューリングの生涯を描いた映画 • アインシュタインと並ぶ『20世紀の天才』 • コンピュータの原理・限界:チューリング・マシン • 人工知能の父:チューリング・テスト • ナチスのエニグマ暗号を解読、アメリカを勝利に導いた影の立役者
  82. 82. Copyright(C) Open Stream, Inc. All Rights Reserved. 機械学習を勉強しよう! ■おすすめする理由 • あらゆる数学が使われていて題材の宝庫 • よいツール・ライブラリが ってきている
 (Python系がおすすめ) • 動かして試しながら学べるのでエンジニア向き ■機械学習・AI系の注目テーマ • ディープ・ラーニング(Deep Learning) • word2vec 82
  83. 83. Copyright(C) Open Stream, Inc. All Rights Reserved. パターン認識器の共通形 83 入力 データ 特徴抽出 特徴量 データ 判別器 答 出力
  84. 84. Copyright(C) Open Stream, Inc. All Rights Reserved. Deep Learning以前の パターン認識 84 入力 データ 特徴抽出 特徴量 データ 判別器 答 出力 従来法 人間(専門家)が設計・調整 機械学習(教師あり) 特徴量の設計が性能を左右する。 専門家が勘や経験則で特徴量を設計していた。
  85. 85. Copyright(C) Open Stream, Inc. All Rights Reserved. Deep Learningによる パターン認識 85 入力 データ 特徴抽出 特徴量 データ 判別器 答 出力 従来法 人間(専門家)が設計・調整 機械学習(教師あり) Deep Learning 機械学習(教師なし) Google の Deep Belief Network: 膨大なデータと計算パワーにより、特徴抽出を自動化した! 『世界にはあらかじめ構造があり、その構造そのものを学習する』 特徴量の設計が性能を左右する。 専門家が勘や経験則で特徴量を設計していた。
  86. 86. Copyright(C) Open Stream, Inc. All Rights Reserved. word2vec ■Deep Learningを文書データに適用 ■単語の意味を『意味ベクトルの合成値』 として表現できる ■King - Man + Woman = Queen という 計算を実行できる! • 王・支配者という意味ベクトル • 性別という意味ベクトル 86
  87. 87. Copyright(C) Open Stream, Inc. All Rights Reserved. 機械学習の注意点 ■OSS等が充実してきており学習器は誰でもすぐ使えます。 ■しかし、結局は機械的な処理なので、どんな変なデータを 入力しても学習器は何かしらの(間違っているかも知れな い)答を出してきます。 ■データの性質の把握して、学習器の答を正しく評価するこ とが必要になってきます。 ■良い参考資料 • http://www.slideshare.net/canard0328/ ss-44288984 87
  88. 88. Copyright(C) Open Stream, Inc. All Rights Reserved. Deep Learningの 参考書 88 ■ まだ日本語の文献は少ないです。
  89. 89. Copyright(C) Open Stream, Inc. All Rights Reserved. コンピュータサイエンス 89 05
  90. 90. Copyright(C) Open Stream, Inc. All Rights Reserved. 日本の平均的な エンジニアの問題 ■コンピュータの専門家ではなく、
 プログラミングやツールの専門家に
 なってしまっている ■数学を駆使したデータ処理などで、
 高度な問題に対処する際には、
 コンピュータサイエンスの
 知識が必要 90
  91. 91. Copyright(C) Open Stream, Inc. All Rights Reserved. コンピュータサイエンス ■ コンピュータ的思考の原理・科学 ■ どのような原理でコンピュータが動いているか ■ 課題を解決するためには、
 どのようにコンピュータを動かせばよいか? 91
  92. 92. Copyright(C) Open Stream, Inc. All Rights Reserved. データ中心時代の コンピュータサイエンス? ■ソフトウェア工学よりも
 コンピュータサイエンスが重視される時代 • ソフトウェアを『いかに上手く作るか』よりも、
 コンピュータを『いかに上手く動かすか』が大きな課題 ■理由:増大するビッグデータ処理への要求 • 分散コンピューティング • 並列コンピューティング • 関数型プログラミング • アルゴリズム解析論 92
  93. 93. Copyright(C) Open Stream, Inc. All Rights Reserved. IT業界の先行指標 CMUの動向 ■カーネギーメロン大学(CMU)
 コンピュータサイエンス学科(CSD)の
 カリキュラム改革(2011年秋) • http://www.cs.cmu.edu/ bryant/pubdir/cmu-cs-10-140.pdf ■新入生にまず関数型プログラミング、
 並列計算などから教える ■オブジェクト指向は上級になってから 93 *マルレク資料より抜粋 https://drive.google.com/file/d/0B04ol8GVySUuUFludEYyTHFJTGs/view
  94. 94. Copyright(C) Open Stream, Inc. All Rights Reserved. CMUの危機意識 ■受験テクニックと化したJava入試により
 コンピュータ分野に対する
 学生のイメージの低下 • 『ITは知的な内容と︎関係︎がなく、就職といえ︎ば狭い部屋に 一日中座ってコードを書いていて、
 実世界に︎何の影響力も持たない仕事?』 • (Javaが簡単に見えるため)『IT系の仕事は将来発展の見 通しが立ちにくく、低賃金の外国にアウトソースされる仕事 では?』 94
  95. 95. Copyright(C) Open Stream, Inc. All Rights Reserved. Javaの功罪(by CMU) ■Javaはアプリ開発には素晴らしい言語 ■しかし『温室育ち』のプログラマを大量発生させた ■ライブラリや環境が高度にチューニングされすぎている ■例えば、各種ソートアルゴリズムの理論について知らな くてもアプリが書けてしまう ■学生にアルゴリズムやパフォーマンス
 (計算量)の理論を学ばせるには向かない ■初級コースからは全面削除 95
  96. 96. Copyright(C) Open Stream, Inc. All Rights Reserved. 関数型プログラミングが 重要な理由 ■ビッグデータには並列計算が必要 ■CPUのマルチコア化 ■オブジェクト指向は並列計算に向かない • 反モジュラー的(継承・複雑なネスト) • 反パラレル的(見えない副作用、内部状態が存在) 96
  97. 97. Copyright(C) Open Stream, Inc. All Rights Reserved. 順序依存のないアルゴリズムは 並列化できる 97 x1,t x2,t x3,t xn,t時刻 t ・・・ 時刻 t+1 x1,t+1 x2,t+1 x3,t+1 xn,t+1・・・ xk,t+1 = f(xk,t) kの順序に関係なく計算ができる →並列化可能 時間軸
  98. 98. Copyright(C) Open Stream, Inc. All Rights Reserved. 順序依存のあるアルゴリズムは 並列化できない 98 x1,t x2,t x3,t xn,t時刻 t ・・・ 時刻 t+1 x1,t+1 x2,t+1 x3,t+1 xn,t+1・・・ 計算結果は、kの順序に依存 →並列化できない! xk,t+1 = f(xk,t)xk+1,t = g(xk,t) 時間軸
  99. 99. Copyright(C) Open Stream, Inc. All Rights Reserved. 並列化できるかどうかを コードから自動的に判定できるか? ■ オブジェクト指向(手続き型) • 判定できない。 • g()によりobjのプロパティが変化しているかも知れない • 何か外部の値を参照しているかも知れない 99 xk,t+1 = obj.g(xk,t) ■ 関数型 • 判定できる。 • 『関数』は副作用がないという言語仕様 xk,t+1 = f(xk,t)
  100. 100. Copyright(C) Open Stream, Inc. All Rights Reserved. ■関数型言語では、
 自動並列化コンパイラが作成しやすい ■OO言語では、
 自動並列化は非常に困難 100
  101. 101. Copyright(C) Open Stream, Inc. All Rights Reserved. データ中心時代の 『データ構造とアルゴリズム』 ■従来の前提 • CPUは1個、シーケンシャルな処理をいかに効 率化するか? • 手続き型プログラミングモデルで分析 ■新しいアプローチ • CPUがN個あったらどうする? • 関数型プログラミングモデルで分析 101
  102. 102. Copyright(C) Open Stream, Inc. All Rights Reserved. コンピュータサイエンス まとめ ■コンピュータ技術の根底には
 きちんと原理・科学がある ■時代の要請に応じて重点が変化 • Web→ビッグデータ ■関数型プログラミングの重要性が
 今後大きくなる 102
  103. 103. Copyright(C) Open Stream, Inc. All Rights Reserved. 国語力 103 06
  104. 104. Copyright(C) Open Stream, Inc. All Rights Reserved. とにかくこれを読もう! ■データは現実世界での意味づけ、 ストーリーがなければ活用でき ません。 ■人間は、最終的には言葉でのス トーリー化された説明・理解が 必要です。 ■一流の技術者になるには、明快 で論理的な文章力が必須です。 104
  105. 105. Copyright(C) Open Stream, Inc. All Rights Reserved. 図解主義の危険性 ■図やイラストは分かりやすいため、逆に 『分かった気になる』危険性がある。 ■いざ文章に書いてみようとしたら、書け ない!=自分が問題をキチンと理解して いないことに気づくことがよくある。 105
  106. 106. Copyright(C) Open Stream, Inc. All Rights Reserved. 参考:Amazon社の ナラティブ経営 ■ナラティブ(説話的・物語的) ■ アマゾンの会議は30分間の沈黙から始まる • http://ascii.jp/elem/000/000/897/897508/ • 会議資料にパワポ(スライド資料)は禁止 • A4 4∼6枚の文章で説明することが求められる • 会議の参加者は、前半30分で資料を精読、後半30分で深い討議 • 「重要な問題について理解してるかどうかを把握するためにナラ ティブが重要。」 • 「最初は非効率的な会議だと思っていたが、今はちがう。事前にす べての資料を読むわけにはいかないし、短い時間の中で問題の把握 ができて、何を解決したいかも分かる」 106
  107. 107. Copyright(C) Open Stream, Inc. All Rights Reserved. 英語力 107 07
  108. 108. Copyright(C) Open Stream, Inc. All Rights Reserved. 私は英語が苦手です ■この本のやり方で勉強しています ■ヒアリング・発音重視 ■脳の学習のクセを利用 ■エンジニアは英語の読み書きは
 できる人が比較的多いが、
 会話が弱い人が多い ■会話にはヒアリング力が重要 108
  109. 109. Copyright(C) Open Stream, Inc. All Rights Reserved. 勉強力 109 08
  110. 110. Copyright(C) Open Stream, Inc. All Rights Reserved. エンジニアの勉強で 大事なこと ■トップダウンとボトムアップのバランス ■インプットとアウトプットのバランス ■指標を使って成長を実感 110
  111. 111. Copyright(C) Open Stream, Inc. All Rights Reserved. ■トップダウン型の勉強法 • まず問題を解いてみる。分からない箇所を逆にた どりながら教科書を読む ■ボトムアップ型の勉強法 • まず教科書を一通り勉強してから、問題を解く 111 TOP BOTTOM
  112. 112. Copyright(C) Open Stream, Inc. All Rights Reserved. 伸び悩むエンジニアは トップダウンだけ ■『すぐに役立つ』TIPSが大好き ■Qiitaは読むだけ ■『いまどきの』とか『イケてる』という
 フレーズに弱い ■プログラミングを『覚え』ようとする ■『やり方(How to)』だけを知りたがる ■自分のコードを説明できない ■センスや経験だけに頼ろうとする 112
  113. 113. Copyright(C) Open Stream, Inc. All Rights Reserved. まず『やってみる』ことは大切 しかし・・・ ■『やってみた』は TIPS/How to 知識 ■for What/Why 知識を結びつけること • 何のためにやるのか? • なぜそうやると良いのか? • どういう基本原理が作用しているのか? • どういう前提条件なのか? 113
  114. 114. Copyright(C) Open Stream, Inc. All Rights Reserved. 初めトップダウン 途中ボトムアップ、がオススメ ■新しい分野にチャレンジする時、
 『まずやってみる』(例題・サンプル) ■やった結果を調べる • なぜこのような結果が得られたのか? • 自分が知っている言葉(=原理)で説明できるよ うになるまで ること 114
  115. 115. Copyright(C) Open Stream, Inc. All Rights Reserved. インプットとアウトプット ■インプット • 知識を頭に入れていく ■アウトプット • インプットした知識を外に出す、実際に使う 115
  116. 116. Copyright(C) Open Stream, Inc. All Rights Reserved. インプットとは覚えるのではなく 理解すること ■ダメなエンジニア • When, Howが中心 • 仕事を覚える=TIPSをたくさん覚えること、
 だと思っている ■良いエンジニア • Why, for What も押さえている • 仕事を覚える=原理・原則・例外を理解する • 自分の言葉で説明できる 116
  117. 117. Copyright(C) Open Stream, Inc. All Rights Reserved. 伸び悩むエンジニアは インプットだけ ■技術書を沢山買っている • オライリーへの貢献が半端ない! ■勉強会とかセミナーに良く行く • けど行くだけ 117
  118. 118. Copyright(C) Open Stream, Inc. All Rights Reserved. アウトプットするために インプットしよう ■勉強会を主催してみる ■ブログに書いてみる ■デモプログラムを作る ■コンテストに出場してみる 118
  119. 119. Copyright(C) Open Stream, Inc. All Rights Reserved. 指標の大切さ ■ゴール指標 • 資格取得、⃝⃝完成、etc. ■日々の指標 • 毎日何分やったか?など • 進 の見える化=小さな達成感の積み重ね • レコーディング・ダイエットの例 119
  120. 120. Copyright(C) Open Stream, Inc. All Rights Reserved. 最後のまとめ ■データ中心の時代とは数学の時代 ■技術の進化により数学のイメージが変わる、 学び方も変わる ■どんな時代でも生き残れるエンジニアに
 なるには、基礎・基本が重要 ■技術は覚えるのではなく、理解する ■勉強の仕方を見直そう 120

×