suzu6suzu6.netHome記事一覧PythonJavaScript眺めていられるシミュレーションブログの構築手順やらアルゴリズムAWS言語処理100本ノック@suzu6主にWEBと解析の技術について書きます。広く浅くも続ければ深くなるはず。社内のプログラマ向けにAIの勉強会を開いた話ポエム機械学習DeepLearning2019-12-07こんにちは、suzu6です。2019の7日目です。6日目はFukkuさんの【Todo】いまさらNuxt.jsに入門したエンジニアの話でした。フロントではVue.jsの盛り上がりに乗って、Nuxt.jsを使う方も増えてきましたね。このブログもNuxt.jsを使って作ったものです。フロントエンドとサーバサイドを合わせてすごくシンプルに書けるのでオススメです!Fukkuさんの入門記事を読んで試してみてもらえると嬉しいです^^。趣旨この記事では、社内のプログラマ向けにAIの勉強会を開いた話をします。対象はプログラマとして数年以上活躍してるけど、AIについてはWEBの記事読んだ程度の方です。勉強会を開いてみてどうだったか?や気付きについて書きます。この記事でプログラマは、システムエンジニアやマネージャー職でもプログラムが書ける人を指してます。発表者(私)仕事はインフラよりのプログラマです。大学でSVM(=機械学習の一種)を使ってました。Deeplearningについては就職してから本を読んで勉強してきました。社内の現役のプログラマの数人と営業の人。AIについてはWEBなどの記事読んだ程度Pythonは初めてですが、他の言語は複数言語使える数学は弱め。数式が出ると頭痛くなる。微積分や行列を知らない・忘れた人ばかりだったのでどう説明するか悩む。Networkのハンズオン」の2回勉強会を開きました。数式は控えめに、どういった動作をするかとコードを見て理解してもらうことを心がけました。「AIの概論」はAIの歴史からどういったことが出来るの?といった内容です。AIについての認識を共有するところから始めました。)や特性DeepLearingが広まったきっかけ(ILSVRC2012)最近の研究結果で面白いものの紹介(DeepFake、物体認識のYolo、かくれんぼAI)といった内容です。発表に3時間かかった。こちらのスライドはいろんなところの図や文章を切り貼りしているので、いまのところ公開は控えますm(__)m。Networkのハンズオン」を開きました。説明用のスライドとホワイトボードと動かせるプログラムを書いて臨みました。スライドはこちらゼロから作るディープラーニングを参考にスライド形式にした内容です。誤差逆伝播はNVIDIAのスライドを利用させて頂いて説明しました。Colaboratoryで動かせるよう調整しました。メニューの「ファイル」「ドライブにコピー」すると自由に書き換えて実行できます!発表してみてどうだったか?本題です。AIって興味あるけど難しそうが解消されたAIと一口に言ってもアルゴリズムは多岐に渡りますし、気になるけどどこから手をつけたらよいかわからない状態でした。勉強会を通して全体像が伝わり実際に動かしてみたことで、とっつきにくさが解消されたかなと思います。私も含めて入り口にたったばっかです。手を動かすところのハードルを一緒に超えられたので、これからみんなで情報の共有や議論ができそうです。ゼロから作るディープラーニングを買って勉強してみようとしてる人もいます^^。データの準備が大事ってことが伝わった勉強会を開く前はいろんなこういうの作ってみたいとアイデアはもらえるのですが、「そのためにはこういうデータがたくさん必要で集めるのも大変だよ」というのがピンときていないようでした。概論のところでどういった学習方法があるかや、NeuralNetworkで実際に学習と推定のプロセスを見てもらったことでそのあたりのニュアンスが伝わりました。「こういうのしたいよね」から一歩進んで「こういったデータ集めないといけないから、公開されているデータを探そう、集め方を考えよう」と考えてもらえるようになりました。Networkのハンズオン」を開きました。実際やってみると、Pythonの書き方で詰まったことはなかったです。さっき説明したもの(活性化関数など)が、コードを見せると結構かんたんに伝わりました。数式よりもコードのほうがわかりやすい!心配してたNumpyやmatplotlibなどPythonのモジュールも、どんな入力と出力が何かを説明したらすぐに書き換えたりして試してくれたりします。バグが多少あっても大丈夫(笑)準備不足で、一部コードにバグがある状態(ミニバッチを仕込もうとして失敗した)で発表しつつ動くよう直してました。すると、参加者全員がが、直した箇所を聞いたりエラー内容から各自手元のコードを修正してくれました。Pythonのコードを見たはずなんですが、コードと読む力とバグを推定する力はすごいなー(笑)と思いました。試行錯誤することが出来た機械学習ではパラメータやモデルを試行錯誤して精度を出していく過程があります。データを突っ込んで学習させたら良いわけではなく、その過程で試行錯誤することが必要です。パラメータを変えて、実際に精度が変わる様子も体験してもらうと、熱中して試してもらえました。最近では、データを渡すとビジネスで使えるレベルのAutoMLもある。凄すぎて理解できない。モチベーションが上がった勉強会を開いて、私自身も含めて皆のモチベーションが上がりました。統計は覚えたほうが良いよとも伝えていたら、機械学習だけでなくそちらにも興味をもってもらえました。お客さん先に見せるデータや今のサービスでどういったデータを取るべきかなどの議論も活発になった気がします。勉強と共有する雰囲気が社内に出来たことはとても良いことなんじゃないかと思います。振り返ってAIについて勉強会を開くなんて自分には敷居が高いと思ってました。実際に開いてみると、想像以上に盛り上がって好評を得ることが出来ました。発表のための資料を作ると、内容を相手のレベルに合わせてどう説明するかを考えることになります。分かってはいるけど説明できない部分は書籍やウェブの表現を探したり、数式を控えて説明するために図を作ったり、短時間で説明するために取捨選択と流れを組み立てることが必要でした。当日は用意したスライドで流れを説明して、ホワイトボードで補足しました。3時間×2回の長丁場でしたが、集中力が途切れず質問も飛び交って白熱しました。勉強会を開くにあたって参考にしたものです。Qiita全てでは無いので順次追記していきます。github寒いけど北海道の冬も好きですよ。