自動運転について調べた(主にソフト面)
※こちらの記事の文章の先頭には、多くの場合「たぶん」という言葉が付きます
はじめに
AIの最もわかりやすい実装先である「自動運転」。
各社取り組んでおり、googleをはじめとした実装例も多々ある。
なので、「自動運転」のソフトの部分はかなりの部分、ある程度のAIエンジニアであれば作れるレベルになってきたのではないかと思っていた。
根拠として、3つある。
まず、1つ目。
OpenAIによる「深層学習の大規模なトレーニングで使われる計算力は、3.5 ヶ月で倍という急速なペースで上がっている」という調査結果。
https://blog.openai.com/ai-and-compute/
即ち、3年で1,000倍になっているということ。
(換言すると、3年前全然できなかったことができるということ。)
続いて、2つ目。
Google Xの社長であるセバスチアン・スランがTEDの中で、下記のように述べていること。
「学生に (中略)(画像を見せて) 「この車をどう運転させたものだろう?」 と聞いたんです。 「さあディープラーニングのコンペだ AI コンペをしようよう」と言って 学生に48時間与えたんです。 GoogleやFacebookのような ソフトウェア企業でも このようなものには 最低半年はかかります。 だから48時間でできたら すごいものです。 48時間で100人の学生が提出し 特に上位4人のものは完璧でした。」(()内は補足。若干の編集あり。)
48時間でできるのであれば、できるのであろうと思っていた。
そして、3つ目。
PFNアルバイトの大学院生が強化学習を使った自動駐車の研究をしていること。
https://research.preferred.jp/2017/03/deep-parking/
PFNアルバイトの大学院生ができるなら、社会人AIエンジニアでもできるはず!
と思ってました。
(しかも、1年以上前ですし。)
が、しかし。。。
「自動運転」にはソフト以外にも考えなければいけない側面が多々あるようだ。
実装へのステップを考えると以下だと思われる。
【ステップ1】
ハードの実装。(要は車を作る)
【ステップ2】
ソフトの実装。
【ステップ3】
ハードにソフトを積んでのローカライゼーション。
【ステップ4】
細かい制御および精度の向上。
【ステップ5】
テスト
補足すると、
【ステップ3】について
日本国内だととても有名な下記のデモ。
これは、2つの面で本当の「自動運転」とは異なると思う。
(これはこれですごいのですが。。。)
1つ目。
狭い。
この狭い空間であれば確かにローカライゼーションが可能そうである。
2つ目。
遅い。
このスピードであれば制御もしやすいだろう。
(逆説的にミニ四駆のスピードでできるとは思えない)
本当の「自動運転」とはまだ距離があります。
また、【ステップ4】は『工学』であれば当たり前のように大変である。
国内発のロケットベンチャーのISTの打ち上げもこの部分で大変苦労している。
工業製品を作るとはそういうことなのであろう。
結論
まだまだ本当の意味での「自動運転」は遠そうであり、
AIエンジニアがいれば、「ほぼ」ステップ2はできるというのが正しそうである。
因みに
下記に実装までの方法はあります。
あとはやるだけ!!!
【参考】
https://research.preferred.jp/2017/03/deep-parking/
・What AI is -and isn’t
・Become a Self Driving Car Engineer
・How to build a self-driving car in one month
天才の方々、異なる箇所がありましたら教えてください。
「◯◯作ってください」「◯◯って作れますか?」と言われたい。
私は、ITエンジニアです。
「超一流なITエンジニアになりたいなぁ」と思ってます。
しかし、
これはサッカー少年が「ワールドカップに出てゴールを決めたい」と思っているのとあまり変わらないレベルでして、
そこに計画性もなければ、ものすごい熱量があるわけでもないです。
が、しかし、
超一流なITエンジニアになるためには 努力が必要で、そのためのモチベーションが必要です。
が、しかし、しかし、
普通にITエンジニアをやっていると心が折れそうなことが頻繁に起きるわけでして、
「モチベーション」は必要に満ち溢れています。
なので、どうやったら「モチベーション」があがるか考えました。
【結論】
『「◯◯作ってください」「◯◯って作れますか?」と言われる』
理由は簡単で、
単純に本屋さんで本を眺めているときに、「◯◯さんが言ってた事って、たぶんこの本読めばできるなぁ」って思うし、「じゃあ、とりあえず読んでおくか」となりやすい。
また、qiitaのランキングを見ている時もダラダラ見ているよりも、「◯◯さんが◯◯を作りたいって言っていたなぁ」と頭の中に合ったほうが、「これ使えば一瞬でできるじゃん!!(うっひょう〜)」ってなりやすい。
なので、
「◯◯作ってください」「◯◯って作れますか?」と言われたい。
現場からは以上です。
お問い合わせは↓から。
WeWorkの価値
私はITエンジニアである。
ITエンジニアは一般に『普通』ではない。
何かに対して『異常』なこだわりを持っている。
特に、労働環境に『異常』な程こだわりを持っている人が少なくない。
私もその中の一人である。
なぜならば、『集中』しなくてはいけないからだ。
ITシステムはしばしば自分の頭では理解できない挙動をして、
それを解決するために必死でググらないといけない。
ググってうまくいく方法を見つけたかと思ったが、うまくいかない場合も多い。
『集中』さえできれば、周りのことなんてどうでもよくなり、フロー状態になる。
このフロー状態が好きなITエンジニアも少なくないはずである。
が、しかし、
簡単に『集中』できるわけではない。
『集中』するためには下記のようなことが必要だ。
・適度に騒がしい空間
・コーヒー(もしくは好きな飲物)
・視界に邪魔なものが入らないこと
・良質なインターネット環境
これらがないとITエンジニアは仕事ができないと言って過言ではない。
前置きが長くなった。
さて、本題である。
世界のユニコーン企業として有名なWeWork。
今やグローバルに展開をしており、全世界で200箇所を超えるコワーキングスペースがある。
WeWorkには専用のアプリがあって、会議室の予約は3クリックでできる。
自分が契約していない別の箇所でも(海外でも)予約すれば丸1日利用することができる。
これがなんと言えない最高な体験を提供してくれる。
考えてみてほしい。
あなたは今シンガポールにいる。『集中』して仕事をしたい。
どうする?
Starbacksに行く?
ダメだ。
Starbacksのwifiは結構よく断絶される。
それにコーヒーだって決して安くない。
せいぜい2~3時間しかいられない。
ホテルで仕事をする?
ダメだ。
静かすぎるし、ベッドが近くにある環境で集中し長時間仕事をするなんて無理だ。
視界にベッドがある状態なんかじゃ仕事はできない。
WeWorkだとどうか。
ここには『集中』するためのすべての環境が整っている。
適度な騒がしさはあるし、コーヒーは飲み放題。
インターネットもフロアに入った瞬間に繋がるし、視界に邪魔なものはない。
なんと言っても、おしゃれ。
受付に行って、
拙い英語でも
「I’m member of Tokyo.I want to use here only today.」
だけ言えば問題ない。
予約を確認してくれて歓迎してくれる。
そして、普段と何も変わらず仕事ができる。
最高である。
weworkがあれば、世界中旅をしながら、どこでもいつもと同じ環境で仕事ができる。
最高である。
いや、控えめに言って、
最高である。
DLLAB Dayのハッカソンに参加してきたよ(AIビジネス編)
MicrosoftとPreferedNetworkがメインで活動している日本で最も大きなDeepLearningコミュニテイであるDLLABが主催するイベントのハッカソンに参加してきました。
改めて、昨今のAIブームにどうビジネス的に取り組むべきか考えさせられました。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
AIをビジネスとして捉えると、こんなビックウェーブにITエンジニアとして乗らないわけなく、是非とも乗りたいわけです。
【参考】私のモチベーション等はこちら↓
が、しかしビビるほどたくさん問題とか課題があると思っています。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ざっと思いつくだけで以下。
1.AIエンジニア高すぎないか問題
2.AIリテラシーのギャップ
3.AI技術をどう使うのがよいかわからない問題
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
1.AIエンジニア高すぎないか問題
AIエンジニアは米国だと年収が3,000万くらいが普通で、日本でも人月200万は下らなかったりする。
【参考】
これで、はたしてAIの社会実装は進むのか大変疑問です。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
2.AIリテラシーのギャップ
AIが仕事を奪うわけなく、銀行員のリストラはマイナス金利のためです。
最近はだいぶ減りましたが、AIは魔法だと思っている方もまだ全然います。
このギャップはデカいです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
3.AI技術をどう使うのがよいかわからない問題
実はこれが一番大きな問題だと思ってます。
DeepMind社がなぜAlphaGoを作ったかというと、AIを使って解ける社会課題がすくないからだと思っている。
一番大きなパイであった自動運転技術は結論が出た昨今、さて一体なにをするのが良いのか全くわからないです。
正直、DLLAB Dayのスポンサー様の話を聞いても、既存技術のローカライズにしか思えませんでした。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
さて、どうする&どうなる??
こうなってくるとAIエンジニア(私)の生存戦略はたぶん以下のどちらか。
1.組織に入って、その組織のためにAIプロジェクトをぶん回す
or
2.AI使って革新的なサービスを作る
因みに私は、「我が社もAI導入を」とお考えの経営者様は、ちょっと高い値段出してAIエンジニアをPJにフルコミットさせることだと思ってます。
【参考】
お仕事、お待ちしております。
DLLAB Dayのハッカソンに参加してきたよ(実装編)
MicrosoftとPreferedNetworkがメインで活動している日本で最も大きなDeepLearningコミュニテイであるDLLABが主催するイベントのハッカソンに参加してきました。
参加目的は、Chainer触ったことがないから一度触るため。
正直、非常に勉強になった。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
ハッカソンの内容は2つ。
ポテチのパッケージの写真を見てどのポテチか判別するモデルを作るといった内容と、9名の有名な小説家(夏目漱石等)の文章から作者を判別するモデルを作ると行った内容でした。
私は、ポテチの方で参加。
正直、Chainerはほぼさわったことなく「hogehoge」ではなく「ふぉえ〜」と言おうと、とってもゆるい感じで参加したのだが、繰り返しだが非常に勉強になった。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
まず、DeepLeaningのモデル作成は以下の3つが重要だと思っている。
1.データの前処理
2.モデルの選択
3.パラメータチューニング
これをChainerの実装レベルに落とすとこれも3つ重要だと思っていた。
1.前処理をどうするか
2.どういったネットワーク構造にするか
3.最適化手法をどうするか
なので、前処理の方法をどうするかをチームでさっさと決めて、ネットワーク構造と最適化手法のやり方もどうするか、ちゃっちゃと決めにいった。
前処理は画像サイズがでかかったので圧縮&正規化だけして、
ネットワーク構造&最適化手法はサンプルを丸パクリして、「とりあえず回そうぜ〜」と思っていた。
が、これは全然頭が悪かった。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
まず、昨今は「転移学習」全盛である。
精度を上げようとする際はファインチューニングをすると良いとなっているそうだ。
そんな頭は全く働かなかった。
また、昨今では訓練データを2つ合体させておくmixupという手法があるそうで、正直全く知らなかった。
そしてさらに、GPUを使うとこんなにも深いネットワーク構造でデータ数が1万あるようなモデル作成が数十秒でできるとは知らなかった。
いや、本当にAIはインフラ命だと改めて思った次第。
【参考】
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
他にも、勉強になったことはたくさんあって、
1.文章データも画像と同じように扱えばいいに決まってんじゃん(CNNはすげー精度がでるため)
2.精度はバリデーションとテストの精度が近い方が良いモデルに決っているじゃん
3.LSTMは金持ちの開発環境
4.モデルのレスポンス時間は重要
5.AzureやらDockerやら
6.画像データを変換した際にデータの並びを変換しないといけない。
などなど。
他にも、聞いて「知らない!」って思ったキーワードで検索すると以下がでてきた。
大変、勉強になった!
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
最後に、今後はこちらも定期的に見ようと思った。
キカガクのセミナーとかも受けたい。
AIに対する雑感(2018年6月現在)
AIってバズワードが誕生してそろそろ3〜4年は経つかと思うが、私なりにはだいぶまとまった。
大きく主張したいのは3点。
1.
AIは「何かを早くすることはできるが、何かを生み出すことはできない」
2.
AIエンジニアは3パターンに分かれる。
1.社会実装する人
2.モデル精度を上げる人
3.ITインフラを作る人
3.
1よりも2、2よりも3の方が貴重である。
(年収も高くなる)
そして、AIはITインフラの問題になりつつある。
「仕事ができる」とは??
仕事は基本的に2つのことしかしていません。
1.誰かに「はい。OK」と言わせる。
or
2.何かを作る
1のために2をすることはもちろんありますが、基本的にどちらかです。
2の仕事をするには全力で考えてもっとも生産性の高い方法で作ればいいのです。
問題は1で、これは生産性の概念が当てはまりにくい。
なので、どうやったら相手が「はい。OK」と言ってくれるかただ考えて愚直になるしかありません。
例えば、ストーリーを考えてしゃべってみるとか。
この1がコントロールできるとマジで仕事できるようになるよね。
全然、私できないけど。