自動運転について調べた(主にソフト面)

f:id:Ichiei:20180828150614j:plain

こちらの記事の文章の先頭には、多くの場合「たぶん」という言葉が付きます

 

はじめに

 

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時間与えたんです。 GoogleFacebookのような ソフトウェア企業でも このようなものには 最低半年はかかります。 だから48時間でできたら すごいものです。 48時間で100人の学生が提出し 特に上位4人のものは完璧でした。」(()内は補足。若干の編集あり。)

https://bit.ly/2kBYxDY

 

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://bit.ly/2PHdJe9

あとはやるだけ!!!

 

【参考】

深層強化学習による自動駐車の実装

https://research.preferred.jp/2017/03/deep-parking/

What AI is -and isn’t

https://bit.ly/2AM275t

Become a Self Driving Car Engineer

https://bit.ly/2aEAnkj

How to build a self-driving car in one month

https://bit.ly/2PHdJe9

 

天才の方々、異なる箇所がありましたら教えてください。

 

「◯◯作ってください」「◯◯って作れますか?」と言われたい。

f:id:Ichiei:20180809095110j:plain

 

私は、ITエンジニアです。

 

「超一流なITエンジニアになりたいなぁ」と思っているわけなんですが、

これはサッカー少年が「ワールドカップに出てゴールを決めたい」と思っているのとあまり変わらないレベルでして、

そこに計画性もなければ、ものすごい熱量があるわけでもないです。

 

が、しかし。

 

普通にITエンジニアをやっていると心が折れそうなことが頻繁に起きるわけでして、「モチベーション」ってやつは必要に満ち溢れています

 

どうやったら「モチベーション」があがるか考えているのですが、

タイトルの通りで、

『「◯◯作ってください」「◯◯って作れますか?」と言われる』

モチベーションがあがることがわかりました。

 

単純に本屋さんで本を眺めているときに、「◯◯さんが言ってたことってたぶんこの本読めばできるなぁ」って思うし、「じゃあ、とりあえず読んでおくか」となりやすい。

 

また、qiitaのランキングを見ている時も「だら~」って見ているよりも、「◯◯さんが◯◯を作りたいって言っていたなぁ」と頭の中に合ったほうが、「これ使えば一瞬でできるじゃん!!(うっひょう〜)」ってなる。

 

なので、

 

「◯◯作ってください」「◯◯って作れますか?」と言われたい。

 

 

ーーーーーーーーーーーーーーーーーー

話変わりますが、ある個人にとって最も大切なことは「心身共に健康であること」です。

その次は色々とあるかと思いますが、現在の私にとっては「モチベーション」です。

この「モチベーション」をどうコントロールできるかが本当に重要だと思ってます。

なので、書いてみました。

 

 

ーーーーーーーーーーーーーーーーーー

 さらに、話が変わりますが

 

SHOWROOM代表の前田さんが「なんでも聞いてください」と言っていたり、

twitterからですがnewspicksゼミの打ち上げで「皆さんの人生の勝算を背負って過ごしていきたい」と挨拶したと流れていて、

 

「マジすげぇな」

 

って思っていたのですが、

「人の◯◯をしたい」を知っていた方が「モチベーションがあがる」ってことを理解していれば完全に理解できますね。

 

ーーーーーーーーーーーーーーーーーー

 さらにさらに話が変わりますが

 

スマホゲームってはじめは無料で、そのあと一部は課金させるってモデルが普通だと思います。

 

これってきっとシステム開発にも応用できて、プロトタイプは無料で提供して、カスタマイズは有料もしくは本番利用のメンテは有料ってビジネスモデルはいいなぁと思いました。

 

理由は、社会実装のスピードがあがるから。

 

具体的なイメージは、ドメイン取得してwordpressのインストールはタダでやって、決済までやるなら有料とか。
(もっと違うレベルでやりたいですが。アルゴリズムは無償でUIは有料とか。)

 

WeWorkの価値

f:id:Ichiei:20180706092102j:plain

 

私はITエンジニアである。

ITエンジニアは一般に『普通』ではない。

 

何かに対して『異常』なこだわりを持っている。

 

特に、労働環境に『異常』な程こだわりを持っている人が少なくない。

 

私もその中の一人である。

 

 

なぜならば、『集中』しなくてはいけないからだ。

 

ITシステムはしばしば自分の頭では理解できない挙動をして、

それを解決するために必死でググらないといけない。

ググってうまくいく方法を見つけたかと思ったが、うまくいかない場合も多い。

 

『集中』さえできれば、周りのことなんてどうでもよくなり、フロー状態になる。

このフロー状態が好きなITエンジニアも少なくないはずである。

 

 

が、しかし、

 

簡単に『集中』できるわけではない。

 

『集中』するためには下記のようなことが必要だ。

 

・適度に騒がしい空間

・コーヒー(もしくは好きな飲物)

・視界に邪魔なものが入らないこと

・良質なインターネット環境

 

これらがないとITエンジニアは仕事ができないと言って過言ではない。

 

f:id:Ichiei:20180706091339j:plain

 

前置きが長くなった。

 

さて、本題である。

 

世界のユニコーン企業として有名なWeWork

今やグローバルに展開をしており、全世界で200箇所を超えるコワーキングスペースがある。

 

WeWorkには専用のアプリがあって、会議室の予約は3クリックでできる。

 

自分が契約していない別の箇所でも(海外でも)予約すれば丸1日利用することができる。

これがなんと言えない最高な体験を提供してくれる。

 

考えてみてほしい。

あなたは今シンガポールにいる。『集中』して仕事をしたい。

 

どうする?

 

Starbacksに行く?

 

ダメだ。

Starbackswifiは結構よく断絶される。

それにコーヒーだって決して安くない。

せいぜい2~3時間しかいられない。

 

 

ホテルで仕事をする?

 

ダメだ。

静かすぎるし、ベッドが近くにある環境で集中し長時間仕事をするなんて無理だ。

視界にベッドがある状態なんかじゃ仕事はできない。

 

f:id:Ichiei:20180706091504j:plain

 

WeWorkだとどうか。

ここには『集中』するためのすべての環境が整っている。

適度な騒がしさはあるし、コーヒーは飲み放題。

インターネットもフロアに入った瞬間に繋がるし、視界に邪魔なものはない。

なんと言っても、おしゃれ。

 

受付に行って、

拙い英語でも

Im member of Tokyo.I want to use here only today.

だけ言えば問題ない。

予約を確認してくれて歓迎してくれる。

 

 

そして、普段と何も変わらず仕事ができる。

最高である。

 

weworkがあれば、世界中旅をしながら、どこでもいつもと同じ環境で仕事ができる。

最高である。

 

f:id:Ichiei:20180706091508j:plain

 

 

いや、控えめに言って、

最高である。

 

DLLAB Dayのハッカソンに参加してきたよ(AIビジネス編)

f:id:Ichiei:20180621202813p:plain

 

dllab.ai

 

MicrosoftとPreferedNetworkがメインで活動している日本で最も大きなDeepLearningコミュニテイであるDLLABが主催するイベントのハッカソンに参加してきました。

 

改めて、昨今のAIブームにどうビジネス的に取り組むべきか考えさせられました。

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

AIをビジネスとして捉えると、こんなビックウェーブにITエンジニアとして乗らないわけなく、是非とも乗りたいわけです。

 

【参考】私のモチベーション等はこちら↓

tekitouu.hatenadiary.jp

 

が、しかしビビるほどたくさん問題とか課題があると思っています。

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

ざっと思いつくだけで以下。

 

1.AIエンジニア高すぎないか問題

2.AIリテラシーのギャップ

3.AI技術をどう使うのがよいかわからない問題

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

1.AIエンジニア高すぎないか問題

 

AIエンジニアは米国だと年収が3,000万くらいが普通で、日本でも人月200万は下らなかったりする。

【参考】

inaka-gurashi.hatenablog.com

 

これで、はたしてAIの社会実装は進むのか大変疑問です。

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

2.AIリテラシーのギャップ

 

AIが仕事を奪うわけなく、銀行員のリストラはマイナス金利のためです。

 

最近はだいぶ減りましたが、AIは魔法だと思っている方もまだ全然います。

このギャップはデカいです。

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

3.AI技術をどう使うのがよいかわからない問題

 

実はこれが一番大きな問題だと思ってます。

DeepMind社がなぜAlphaGoを作ったかというと、AIを使って解ける社会課題がすくないからだと思っている。

一番大きなパイであった自動運転技術は結論が出た昨今、さて一体なにをするのが良いのか全くわからないです。

 

正直、DLLAB Dayのスポンサー様の話を聞いても、既存技術のローカライズにしか思えませんでした。

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

さて、どうする&どうなる??

 

こうなってくるとAIエンジニア(私)の生存戦略はたぶん以下のどちらか。

 

1.組織に入って、その組織のためにAIプロジェクトをぶん回す

or

2.AI使って革新的なサービスを作る

 

因みに私は、「我が社もAI導入を」とお考えの経営者様は、ちょっと高い値段出してAIエンジニアをPJにフルコミットさせることだと思ってます。

 

【参考】

qiita.com

 

お仕事、お待ちしております。

 

 

DLLAB Dayのハッカソンに参加してきたよ(実装編)

f:id:Ichiei:20180621202813p:plain

 

dllab.ai

 

MicrosoftとPreferedNetworkがメインで活動している日本で最も大きなDeepLearningコミュニテイであるDLLABが主催するイベントのハッカソンに参加してきました。

 

参加目的は、Chainer触ったことがないから一度触るため。

 

正直、非常に勉強になった。

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

ハッカソンの内容は2つ。

 

ポテチのパッケージの写真を見てどのポテチか判別するモデルを作るといった内容と、9名の有名な小説家(夏目漱石等)の文章から作者を判別するモデルを作ると行った内容でした。

 

私は、ポテチの方で参加。

 

正直、Chainerはほぼさわったことなく「hogehoge」ではなく「ふぉえ〜」と言おうと、とってもゆるい感じで参加したのだが、繰り返しだが非常に勉強になった。

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

まず、DeepLeaningのモデル作成は以下の3つが重要だと思っている。

 

1.データの前処理

2.モデルの選択

3.パラメータチューニング

 

 

これをChainerの実装レベルに落とすとこれも3つ重要だと思っていた。

 

1.前処理をどうするか

2.どういったネットワーク構造にするか

3.最適化手法をどうするか

 

 

なので、前処理の方法をどうするかをチームでさっさと決めて、ネットワーク構造と最適化手法のやり方もどうするか、ちゃっちゃと決めにいった。

 

前処理は画像サイズがでかかったので圧縮&正規化だけして、

ネットワーク構造&最適化手法はサンプルを丸パクリして、「とりあえず回そうぜ〜」と思っていた。

 

が、これは全然頭が悪かった。

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

まず、昨今は「転移学習」全盛である。

精度を上げようとする際はファインチューニングをすると良いとなっているそうだ。

qiita.com

 

そんな頭は全く働かなかった。

 

また、昨今では訓練データを2つ合体させておくmixupという手法があるそうで、正直全く知らなかった。

qiita.com

 

そしてさらに、GPUを使うとこんなにも深いネットワーク構造でデータ数が1万あるようなモデル作成が数十秒でできるとは知らなかった。

 

いや、本当にAIはインフラ命だと改めて思った次第。

 

【参考】 

tekitouu.hatenadiary.jp

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

他にも、勉強になったことはたくさんあって、

 

1.文章データも画像と同じように扱えばいいに決まってんじゃん(CNNはすげー精度がでるため)

2.精度はバリデーションとテストの精度が近い方が良いモデルに決っているじゃん

3.LSTMは金持ちの開発環境

4.モデルのレスポンス時間は重要

5.AzureやらDockerやら

6.画像データを変換した際にデータの並びを変換しないといけない。 

 Chainerで画像を読み込む際のTips

 

などなど。

 

 

 

他にも、聞いて「知らない!」って思ったキーワードで検索すると以下がでてきた。

 

 

iwiwi.hatenadiary.jp

 

soralab.space-ichikawa.com

 

www.atmarkit.co.jp

 

大変、勉強になった!

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 

最後に、今後はこちらも定期的に見ようと思った。

github.com

 

キカガクのセミナーとかも受けたい。

www.kikagaku.co.jp

AIに対する雑感(2018年6月現在)

f:id:Ichiei:20180621201234j:plain

 

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がコントロールできるとマジで仕事できるようになるよね。

 

全然、私できないけど。