渡るネットは嘘ばかり

元文系、米国大学院CS修士号持ちITエンジニア。自称エンジニアが撒き散らすゴミを少しでもキレイにしたい

AIってプログラミングスクールで教えられるの

[2018/06/24追記] 今もアクセス結構ありますが、だいぶ前に書いた記事で、D社のカリキュラムは古いものに対するコメントになっています。また、APIやライブラリの改善でだいぶ簡単に扱えるようになってきました。…とはいえ、損失関数や偏微分を使った損失関数から重みの調整とかは自分で書いたりするので、数学的な部分がわかった方がいいし、誰でも使えるようになった部分を使うのはAIエンジニアでなく、AI技術を扱うソフトウェアエンジニアで、こちらはAI得意の自動化でどんどんすべき処理が減ると思います。AIを扱ってる会社は大学教授が顧問になったりして、最新の英語論文を読んで実装したりが多いので、理系でそこそこのIT経験がない人は採用されない確率が高いです。ちなみに、今、AIエンジニアに転職活動中なので、決まったらもっと情報出せると思います。また、下記の文章も一部時代に合わせて簡単な修正をしています。
---- 追記ここまで -----

ネットはウソばかりは残念ながらスマホの普及で金儲けのために嘘情報を流す人が増えすぎたのが1番の原因だと思ってます。最近Googleでも-a8.net -felmatとかでアフィリエイトを弾いた上で*tech-camp.in*とか*techacademy*とかをブロックするように設定しました。だってさ、webデザイン調べたいのに本職じゃない人がそれっぽく書いてるんですよ。webデザインって現場の最前線では基本美大卒とかがやってますからね。トレンド!とか、お前が見つけたかっこいいサイト紹介してるだけやんけ、的な。

あ、リンクが一つでもa8.netとかfelmatが入ってる人は基本的に体験談風に書いてても大半がウソで金儲け目当てです。これ、何度でも書きます。まじで、このタイプのステマが1番質悪い。基本的に専門家でもないし、目的がアフィリエイトでの体験だったりするので本来のターゲットの目的の達成を目指してない場合も多いです。

この前、飲み屋でIT系フリーランスを語る人がいて、俺もですよ、と言ったら、「何ですか、ライターですか?」とか言われて、完全にメガテンWTFでした。聞いたら、アフィリエイターらしくそれ、ネットビジネスだけどIT系名乗るなよ、と思いました。
どうせwordPressで商材売ったりコンサルしたりでしょ…。

ホント2020年にはアフィリエイターって特化型以外絶滅してると思います。軽く希望です。IT系フリーランスって胡散臭いって言われるようになった最大の原因の人達ですよね。商材屋と2大巨塔。まぁ、アフィリエイターの半分以上商材も手を出してるか。稼いでても大半が騙して誘導ですから。詐欺紙一重ステマだらけ、もう魑魅魍魎の他人騙しても罪悪感感じない、脳みそイカれてる人しかできないと思います。まともな良心持ってる人がまともなやり方したら…時給80円くらいじゃないかな。
見たくない物を見せて間違って誘導して、とか悪徳商法となんら変わらないです。泥舟は早めに沈んで欲しい。

巷では大島さんのFuckだとか須藤さんのDamnとかで騒いでますが伏せ字にするほど汚い言葉かねー。アメリカいた時毎日のように聞いてたし、ルームメイトのCanadian Americanはアメリカ人と話す時は3秒に1度位Fuckin'とかFuckとか言ってたけどなぁ。
例えば、ビリヤードで相手がめちゃくちゃいいショット打ったときとか、Shit!とかFuck!とか言うしね。これは褒め言葉。Damn it!とかやっちゃまった的に使うから須藤さん合ってない?w

【スラング辞典.com】英語slang・ヒップホップHIPHOP・俗語・隠語・最新英語・新語・若者言葉・ギャル語特集

とりあえず、FuckとかDamnとかを伏せ字にする人は英語圏住んだことなくて過剰反応してる恥ずかしい人ですね。他人の不倫に関係ないのにプリプリしてる人と同レベルです。

DIVE INTO CODEの記事がやっぱり1番読まれているようで、AI関連のエントリーです。

AIを学ぶ大変さ

AIコース、満員らしいですね。ちゃんとできるんだろうか…100万近く取って、カリキュラム見た限り、1年じゃ絶対ムリだと思うわけなので、もう一度警鐘鳴らしておきます。満員とか言って理系卒数人しか取ってなかったり。普通にモニターで1年やって1年でいけるって募集したんですかね?勢いとしか思えないです。経験者から言わせてもらうと理系の素養ないと無理。それでもきつい期間。教えてもわからなかったら意味ないですよね…。
ちなみにスタンフォードの大学2年向けの機械学習クラスが↓

CS229: Machine Learning

これを10週でやってって感じですが、とりあえず、これを10週でできるレベルじゃないとあのカリキュラム終わらないというかオンタイムで理解できないと思いますよ…。
スタンフォードレベルじゃない大学だと大抵大学院でやっと扱うトピックスです。
うちの大学は大学院まで取れない科目でしたが、4年間学部で基礎やって、OSの基本的なシステムコールとかわかるし、pythonもCもC++もだいぶ授業で書いて、CGの基礎とかも学んだ人達のスピード感なんですけどね。

1年でAIマスターとか、社員研修に定評のあるシステム大手でも無理じゃないか?Nさんは完全にCSを舐めてるよね。コーディングは一種英作文に繋がる部分あるけど(一方で
プログラミングになるとエンジニアリングです)、AIは完全に統計学辺りをベースにしたScienceなので、文系なら、理系の基礎から学ぶことになります。

教科書的には英語だけど、
機械学習Pattern Recognition and Machine Learning
AI:Artificial Intelligence: A Modern Approach 3'rd edition 

機械学習が7割、AIはほぼ全部が読むべき範囲です。全部でそれぞれ758P、1152Pありますね。日本語だと東大から機械学習の教科書が出てます。

東京大学工学教程 情報工学 機械学習

これが入門編だと思ってくれればOKです。正直なところ英語の方がまだ簡単。東大生って大変だな、と思いました。習ったことはだいたい一緒です。3ヶ月でこの8割くらいやった。

何を学ぶべきか

AIは統計学とか数学が基礎になってる分野で、手法は結構昔に生み出されていたものの演算能力が足りず、実用的でないため一度日陰に追いやられたのが、マシンのスペック向上とビッグデータの時代に復活したものです。統計学とか数学がわかってないとAPI叩いてもチューニングがわかりません。理論を理解するのに手っ取り早い方法は実装することですが、おそらくscikit-learnとかのAPI叩いて終わりなんだろうなぁ。俺はAPIは叩いて自分のプログラムが正しい答えになってるの確認した程度です。scikit-learnとか使うなら、リバースエンジニアリングしないと話になりません。そんなんだから、株価予測に決定木とか使っちゃうんだよ。決定木なんて、独自実装でも1日かからないレベルなわけで、そんな単純な学習アルゴリズムで株価予想できたらコンピューターサイエンティスト皆大金持ちだわ。

軽く掘ってみる

ツッコミどころ満載というか、突っ込みどころしかないAIコースを軽く掘ってみると、まぁ、まず、データサイエンスと数学の順番が違いますよね。データサイエンスでnumpyとか書いてあるのがもう斜め上過ぎます。数値計算の拡張モジュールですよ?データサイエンス入門のムックでも読んだんだろうか。numpyはsklearnとかに使いやすいよう配列を変換したりするのに使うわけで、別にデータサイエンスの項目ではない。
データサイエンスの定義がすでにデータサイエンスに使う数学以下の位置づけしてる時点で嫌な予感しかしないです。機械学習が超ざっくり。細かい技術知らないでしょ。せめて、何個か箇条書きできるレベルにはならないと教えられんくない?機械学習だけでも、パッと思いつくので線形回帰、ロジスティック回帰、SVM、ナイーブベイズ、決定木、ランダムフォレスト、K-means、クラスタリング、次元削減、パーセプトロンEMアルゴリズムニューラルネット、くらいはやって欲しい。ライブラリ叩くだけでなく。エキスパートはAPIを叩く人ではないです。

で、間に合うの、これ?

ちなみに上記の機械学習は3ヶ月の授業で日本の大学の学部をコンピューターサイエンス専攻で4年勉強した友達がガチでやって単位落としてました。機械学習に辿り着くのがおそらく4〜6ヶ月目でしょ。そこから3〜4ヶ月やって…深層学習やって応用プロジェクト?あれ、というか、機械学習からAIの間が応用になってる…。えええ。
N-gramとか自然言語処理のプロジェクトで自分でやってね、的な?これ、純粋なAIの要素、応用プロジェクトにしかない気がするんですが。せめて人工無能くらい教えようよ…。ドコモのAPI叩いて下さいとか言うのか?

あとね、時間配分ぐっちゃぐちゃ。

人工知能概論(技術編)
機械学習
深層学習(DeepLearning)
神経科学脳科学
C++ 基礎
HPC

これを400時間ってギャグやで。機械学習だけで200時間はかかります。CSの素養ある人でね。ちなみに半分以上は読書の時間、1/3は理解の時間、プログラミングは理解したらそこまで難しくない。でも、Pythonの基礎やったばっかの人にC++とかで書かせようとしてるのも危険な香り。俺は他の授業も受けながらだったけど、理論の理解系はReadingの咀嚼に時間がかかるので詰め込んでもだめだし、機械学習が基礎になってる深層学習は並行して進めるのは無理。

本当に怖いと思うのはどこか

ユーザーからのフィードバックを受け更新し続けること、そして最新の技術を取り入れ続けることを行っています。 DIVE INTO CODEが2016年に行ったテキスト改修は、2000回以上になります

独学系プログラミング教室ってテキスト改修回数を誇りたがるわけですが、これほど怖いことはないですよ。2000回も改修するってことは元の精度が酷すぎるって話です。出版物で第2000版とかやばいでしょ。5版位がいいとこじゃない?Peer Reviewって専門家同士で確認しあって内容チェックするとそれくらいに収まるものです。数年に1回、技術的に古くなって新しくなるくらい。2000回とかさ、自分が卒業した1ヶ月後に、コード的によろしくなかったので、とか間違ってたので、とかで100回とか改修されたらたまらないですよね
修正したら、毎度通知くるんだろうか。来ないとダメだし、でも、修正頻繁すぎな気がして仕方ない。コミット数か、これ?TECHうんちゃらも改修数自慢してたけど。ちゃんとした知識がある人が原案作ればそんなしょっちゅう直す必要ないんですよ。

エキスパートAIコースを修了すると、世界に通用するようなハイレベルAIエンジニアになることができます

これ、完全に詐欺になる可能性あります。エキスパートAIコース修了した人に色々質問してみたいなぁ。ちなみにハイレベルAIエンジニアは理論とか基本的に理解してて当たり前ですよ。俺、機械学習でA-取ったので、93%くらいわかってるって話ですが、ハイレベルAIエンジニア名乗れないです。ハイレベルなめんなよ。APIと同じ機能は自分で書いてるのが世界で戦うエンジニアの標準です。APIは使えるけど、理論とかはちょっと、とか言うのは下流のエンジニアです。API使えばできるなんて、普通レベルのエンジニアだったら、Google先生に聞けば誰でもできるやん。どうも、MBAの人らしく、適用事例とか倫理面とかやりたがってる気がしますが、技術だけやっても間に合わない量ですよ。ちなみに最新の論文を実装するって、大学院でやりますが、ガチの人で教授と相談しながら授業と並行してだけど、1ヶ月くらいかけてやりますね。教授レベルで教えられんのだろうか。

DIVEさんのカリキュラム見た限り、「即戦力」も、まぁ、現場で初心者向けの仕事はできるんじゃない?レベルだし。JAROに言ったほうがいいんじゃないか?

AIを導入するのが有効か

AIは旬ですが、使い所を間違えると余計コストが嵩みます。例えば微分は加速度なので、微分して最小値を求めるとかって手法使うわけですが、意味わかんのかな文系で。それとも1年かけてAPIの使い方勉強したりしてwそれ、AI人材ちゃうで。AI人材が足りないのはコード書けても理論わからない人が多すぎて、下手にAIプロジェクト立ち上げると技術的負債作るだけです。Googleでもそんなこと言ってます。

Machine Learning: The High Interest Credit Card of Technical Debt

要はちゃんと理論や原理わかってないやつにやらせても技術的負債になって後で困るだけって話。作った人にしかメンテナンスできないとか、時間かけて作ったものの、根本原理わかってないと使い物にならなかったりするわけです。直すのに倍のコストとかね。
1年前にPythonの基礎もデータ構造とかアルゴリズムも知らなかったド素人がAPIだけ使えるようになりました、で開発したらAIエキスパートどころか、技術的負債の多重債務者を作るだけですよ…。

結論

AIのエキスパートになりたいなら、大学院行くといいですよ。学費も100万払うなら大差ないんじゃないですかね。エキスパートになる実力あるなら、学費免除の待遇くらい行けそうな気がしますが。100万払ってAPI使えるだけの人になるなら、ちゃんとやった方が良いとも思います。ちなみに、技術的負債を1番作るのが理論はわからないけど、API叩ける、って人です。APIは魔法の箱じゃないですからね。特にAIは。育て方次第で簡単にアホに育つのがAIです。ちゃんと理論勉強しましょう。