Translate

2017年6月19日月曜日

udemy のAI入門とTensorFlow入門を試してみた

AIブームというけれど、
それを使いこなすプログラマを育成する道具が
あまり揃っていない。

全員が全員、
TensorFlow のページをGoogle翻訳でゴリゴリ読むなんて
正直無理だ。

ド素人とまでは言わないが、
数年の経験をもつプログラマに使いこなしてもらわないと
とてもビジネスアプリケーション分野での発展は望めない。


..ということでいきついたのがudemy。

udemy は有料のeラーニングサービスで、
海外でも展開していてその日本版のサービスを試してみた。

日本版udemyはどうもあの Benesse が絡んでいるようなのだけど
..まあそのあたりのリスクはどうするかは始める人次第。

なぜ試してみたか..というのは、
AI、機械学習、ディープラーニングの良さげな研修が
あまりないこと。

幾つか存在するのだけど、
書籍も含め難易度が高い。
特に数式の出てこない本とかだと


私がパラ見した中では「はじめてのディープラーニング」という本くらい。
この本でも数式はどうしても出てくる。

個人的にはこの本はプロマネや営業..は辛いかもしれないけど技術系営業なら
できれば知っておいて欲しい単語がならんでいる。

なのでPMや技術系営業でAIと絡みそうない人は、
ちょっとづつ読みながら用語集を作っていくと
AI系のPMや営業業務にはついていける様になると思う。
#最後のCafeを使うセクションは飛ばしても良い

でも、これだと頭でっかちで、
どうしてプログラムを書かないで分類とか識別とかができるのか
というそもそもの本質的なところを埋めてくれないのだ。

それ用の本として



「ゼロから作るDeep Learning」というのがあるのだけど..
これが"ゼロから"とかいってるくせに
パーセプトロンとかXORとかNANDとか線形だ非線形だとか書いちゃって
「お前、教える気、ないやんけ!」
と思えるほど読む難易度が高い。


もっと3年目くらいのプログラマが手を使いながら
できればパーセプトロンとか線形とかの単語をそれほどつかわずに
おしえてくれそうな教材はないものか..

で、見つけたのがudemyの講座
「みんなのAI講座 ゼロからPythonで学ぶ人工知能と機械学習」
https://www.udemy.com/learning-ai/

だ。

で、実際にやってみた。

テキストの流れは、以下の通り。

・コースと人工知能の概要
・準備
 Python2.7と最新版PyCharmをインストールする。
 ここで手順に従わず、Anaconda最新版でPython2.7仮想環境を作るのが実は近道。
・Pyhtonの基礎
 この講座の中でもっともつまらないセクション。
 だけど、後でPythonコードを書くので、一応知っておかないと進められない。
 ここをクリアすればAIのはなしに入ることができる。
 既に知ってる人は2倍速で飛ばせばいい。
 他の言語を知っている人は、四則演算の演算器とクラス、関数の書き方、リスト[]/タプル()/ディクショナリ{}の違いと使い方のところだけしっかり学習すればOK
・必要な数学の学習
 次のセクションで使うシグモイド関数を勉強するセクション。
 matplotlibというライブラリを使ってグラフをpythonで図示させて、継続意識を絶やさない講師の努力が伺える。
・ニューラルネットワーク
 「ゼロから作るDeep Learning」の2章「パーセプトロン」をわかりやすく、かつ順番にコードを肉付けしながら学んでいくこの講座の中心。
 ニューロンクラスを完成させ、ニューラルネットワーククラスで複数連結させるところまで。
・機械学習
 前のセクションで作ったニューラルネットワーククラスのWとbをどうやって自動学習できるようにするかをおしえるセクション。ここも中心のひとつ。
 バックプロパゲーションで微分を傾きとして教えている。
・機械学習ライブラリの活用
 自分で実装しなくてもライブラリがあるのでそれを使えば簡単に実装できるよという、応用セクション。
 scikit-learnをインストールするが、WindowsOS上のPython2.7.x系に直にscipyをインストールするところは、皆結構引っかかるところなのだけど、そこが書かれていない。
 最新のAnacondaでcondaしてpython2.7仮想環境を作っていればもんだいなし。
 動かすのはサポートベクタマシンを使ったMNISTと株価分析。
・さらに学ぶために
 ここはGPUの話やディープラーニングの例としてCNNやDCGAN(贋作者つきCNN)のほんのさわりだけしょうかいしてまとめ
 TensorFlowも使おうとするが、AnacondaでないWindows利用者は確実にハマる。
 でも疎通用プログラムを動かすだけなので無視してOK
・ボーナスレクチャー
 講師主催の勉強会案内などの、塾帰り直前とかの案内的な話


Python知らなくても学習するところから始めるし、数学用語は知らなくても継続可能。
バックプロパゲーションで?となる人もいるだろうが、ニュートン法を計算機実習で学んだ人ならほぼスルー可能。
このあたりだけごまかせば、たぶん新入社員でもなんとかなるだろう。

この講座は、環境面の問題がクリアできれば初心者SEのAIへのエントリポイントに最適だ。
ただPMや営業が必要としているのは、"用語"集のインストールだが、この講座はそこは満たすことができない。先の「はじめてのディープラーニング」とかの本を読みつつExcelシート上に用語集を作っていくのが最短ルートだとおもう。



この講座の"次"候補として、


【4日で体験】 TensorFlow x Python 3 で学ぶディープラーニング入門
https://www.udemy.com/tensorflow/


を受けたが、前の講座を公立小学校としたら、これは中学2年か。
("中1"部分が抜けてる気がする)

TesnorFlowのチュートリアルの最初にあるMNISTを順番に解説するが、
その後はサンプルコードをGitから落として動かすだけなので、
知識としてはCNN(畳み込みとプーリング、全結合層で何やっているか)
にとどまる。

本音としては、
tf変数がなんであるのとか、
計算グラフは定義しただけでは動作せずsessionをrunしてうごかすとか
runするときのディクショナリのplaceholderでpython界とC++界を行き来しているとか
を説明する講座が欲しいところだ。

MNIST以外の2つのセクションはそれぞれサンプルコードの動かし方例だが
これを1本にして、自然言語系のチュートリアルをCNNのように
詳細解説してほしいなあ..

講師からのコメントによるとこれかららしいが、
1つのコース内でいれてくれるか
別コースになるか..
なんとなく別コースになりそうな気がする..

なんにせよこのコースは修正過渡期なので
この段階で評価することは難しい。

..というか、TensorFlow は私の学習時期が悪すぎた..
はじめた翌日にTesnroFlow1.2.0がリリースされたし..

バージョン自体がグラグラしている時期だからなあ..
Keras優先したにしても、tf.keras問題もあるし...


既に1.3.0の噂も聞いているので、TensorFlow系の教育はあまり手を出さないほうが実は件名だったりスルのだけど、組織や個人の事情でそうもいってられないひともいるだろうし..



p.s.
講座を完了すると、以下のような修了証が発行される。





まあ、これはどうでもいいですが..


0 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...