O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

dl-with-python01_handout

874 visualizações

Publicada em

Pythonで実践する深層学習勉強会第1回資料

Publicada em: Ciências
  • Seja o primeiro a comentar

dl-with-python01_handout

  1. 1. and 主催, 「Pythonで実 践する深層学習」 出版記念企画 目次: 次回以降で取り上げる話題,データ,プロジェクト,質疑応答のために slack のチームを作成しました。今回参加されなかった方でも自由に参加 できます。チーム名は deeppython.slack.dom です。ご参加ください。
  2. 2. 謝辞 自己紹介Who am i 他己紹介Who are you イントロダクション 本勉強会の予定 準備 深層学習とは何か エンドツーエンド 簡単な歴史 本書を最速で理解するには 参考サイト フォローアップアンケート Aymeric Damien さん@AymericDamien のTensorFlowチュートリアル GitHub repository 次へ(謝辞)
  3. 3. ## 謝辞 本勉強会を開催するにあたって尽力くださいましたDGLab & ナビプラス株式会社宮本隆志様, 梅 染充男様, 宮島壮洋様コロナ社営業部  秋浜直治様, に深く感謝いたします。 本書出版の労をとってくださったコロナ社編集部,金泰造様,柏原牧人様, この場を借りてお礼申 し上げます。 本書,草稿に目を通してくださった亀田雅之様,岩井健二様,青木瑠璃様,ありがとうございまし た。 また,もくもく勉強会主催吉澤和香奈様,株式会社ロボ研山瀬翠星様のご協力に感謝いたします。 最後に,岩船幸代さんのいつも変わらない援助に感謝いたします。 自己紹介Who am i へ
  4. 4. 自己紹介 浅川伸一 東京女子大学情報処理センター勤務。 早稲田大学在学時はピアジェの発生論 的認識論に心酔す る。卒業後エルマンネットの考案者ジェフ・エルマンに師 事,薫陶を受ける。以来人間の高次認知 機能をシミュレートすることを通して知的であるとはどういうことかを考えていると思っていた。 著書にディープラーニング, ビッグデータ,機械学習あるいはその心理学 (2015) 新曜社, With or Witout Categorization, in Andres Costa and Eugenio Villalba (Eds.), Horizons in Neuroscience Research (2014), 「脳損傷患者の症例から見た 読字過程」( 「認知心理学の新展開 言語と記憶」 (2012) 川崎恵理子編, ナカニシヤ出版), 「ニューラルネットワークの数理的基礎」「脳損傷とニ ュー ラルネットワークモデル—神経心理学への適用例」 (いずれも守一雄他編 「コネ クショニス トモデルと心理学」 (2001) 北大路書房)など
  5. 5. 師匠ジェフ・エルマンと2002年ころUCSDのキャンパスにて 他己紹介Who are you へ
  6. 6. 他己紹介 前回
  7. 7. 今回
  8. 8. 前回
  9. 9. 今回
  10. 10. 前回
  11. 11. 今回 前回
  12. 12. 今回 前回
  13. 13. 今回 取り上げて欲しい話題があればお書きください 顔認識、似た顔の写真を検出 開発環境について(windows, linuxそれぞれやGPUを使用する場合など) codeの解説 学術的な内容と、一般企業や一般社会人による実務的な例、の両方に触れたいです。 1980年代の流行から後の流れを概説していただければ幸いです。 まずは、プログラミング環境構築と困った時のAPIマニュアルの見方 DeepLearningを用いた具体的なプロダクトの開発方法、DeepLearningを活用する際の学習方 法、TensorFlow等で出来ること・使い方 MNIST以外のチュートリアル Webサービスとの応用
  14. 14. 文字認識 今回追加分 - 主観で構わないので、深層学習に対する展望など - DeepLearningを用いた文書分類 - ディープラーニングの初学者です。理論に関する文献は多く目にするのですが、入門的な実装に関 する文献や記事を見つけることが難しいです。オススメの本やサイトがあれば教えていただきたい です。 - ビッグデータの解析手法 このイベントに期待すること,あるいはリクエスト,ご質問などご自由にお書きください 根幹の数学的なところも含めて理解できるような内容を期待します 当イベント参加者が、この書籍の内容を自ら生かして実践した例を発表する場を設けるな ど、参加型後続イベントを継続していただけたら、素晴らしいと思います。また、自身もつい か発表できるよう、勉強とその応用を継続できたら、思います。 心理学・生物学・医学から見たニューラルネットの意義 あるテーマが機械学習の応用に向いているか否かを見分ける時の目の付け所があれば。 後で持ち帰ってテキストの内容ができるように、プログラミング環境構築と数式とプログラ ミングの対応関係を教えてほしい。 強化学習(テキスト読み取り)について学習ができる基礎を学びたいと思っております。よろ しくお願いします。 DeepLearningをこれから学ぶものとして、DeepLearningの全体像から具体的なプロダクトへ の活用事例、学ぶべきこと等知れると嬉しいです。 自分でも、NNが設計できるようになりたい。 実装法も詳しく聞きたいです
  15. 15. 今回追加分 - 前提知識が不足しています。今回の受講をとっかかりとして知識を深めていきたいで す。 - 学習させるデータの収集の仕方前処理の仕方のコツについて - 楽しみにしているので、よろ しくお願いします。 - よろしくお願いいたします。 - 深層学習どころか機械学習について勉強を始 めたばかりで、どこから手をつけたら良いかまだまだわかっていないため、今回からの勉強会を通 じて、深層学習がどういった場面に応用ができるかといった視野が広がることを期待している。 - 全ての講義に参加したのち、概念と数式の理解、及び簡単なコードをスクラッチで書けるようにな っている イントロダクションへ
  16. 16. Jim Gray 第4 のパラダイムより. National Academies Computer Science and Telecommunications Board ppt file
  17. 17. Bottou のスライドNIPS2007より 次へ(本勉強会の予定)
  18. 18. plan 予定 第一回(今回):ニューラルネットワークの基礎,現状 第二回:畳み込みニューラルネットワーク,リカレントニューラルネットワークの基礎と実装 第三回:深層学習の発展的話題 第四回:強化学習と深層学習,まとめ 次へ(準備)
  19. 19. 準備 前提 オペレーティングシステムは 1. Linux (Ubuntu 14.04, 16.04 推奨) 2. Mac OSX (El capitan 推奨) 3. Windows (7, 8, or 10). You might be able to do with Windows XP as well in principle, but I do not recommend do this. を仮定させていただきます。それ以外での 動作は考えない ことにします。加えて TensorFlow は公 式には Windows をサポートしていません。 従いまして Windows をお使いの場合には使用制限が あるとお考えください。 Windows 環境でTensorFlow をお使いになる場合には,なんらかの仮想環 境を必要とします。 準備 以下のインストールを済ませてください。最低でもpythonがインストールされている必要がありま す。OSによってはPythonがプレインストールされていますが,多くのチュートリアルではOSに付
  20. 20. 属しているpythonを使っていません。本勉強会でも,このような慣例に則り Python をインストー ルすることをお勧めいたします。anaconda は 3 つのOSで共通するので,第一選択肢として anaconda をお考えください。 ご自身でインストー ルすることが難しい場合には deeplearing.w.python@gmail.com までお問い合わせください。 質問はいつでも歓迎いたします。 1. Homebrew, Xcode (Mac only) 2. Python (either 2.7 or 3.5) 3. anaconda 4. pip, setuptools 5. six 6. jupyter (ipython-notebook), SciPy, NumPy, Matplotlib, scikit-learn, pandas, python-mnist 7. Chainer, Theano, TensorFlow (optional), Caffe (optionnal) 8. nltk (opitonal), gensim(optional) 最終的にインストールできていて欲しいもの pipinstallTheano pipinstallchainer pipinstallscikit-learn 上記3つが必要になります。インストールでトラブルがあればdeeplearing.w.python@gmail.com ま でお問い合わせください。 環境の把握
  21. 21. ご自身の環境を把握なさってください。 記述してあるとおりに実行しても動作しない場合,実行環 境の相違に起因することが多いです。 stackoverflowに書いてあった, Reddit やQiitaに書いてあっ たのに動かない, と言われても困ります。これらの記事が未来永劫に渡って絶えず正しいことを保 証するわけではありません。 その記事が書かれた環境下で,その当時,そこに書かれている手順を 実行した結果が記載されているにすぎません。現在ご自身の環境でそのまま当てはまると考えるの は早計です。まずはご自身の環境と書かれている内容との相違を認識してください。 テキストエディタ 手に馴染んだテキストエディタも必要です。開発効率に影響しますのでメモ帳では厳しいです。 動作環境のチェック from__future__importprint_function importsix importsklearn importtheano importchainer importtensorflow ('sklearn',sklearn__version__) ('theano',theano__version__) ('chainer',chainer__version__) ('tensorflow',tensorflow__version__)
  22. 22. でどのような結果が得られるでしょうか? ちなみに演者の環境では bashsklearn0.17.1theano0.8.2 chainer1.14.0tensorflow0.10.0rc0 でした。 次へ(深層学習とは何か)
  23. 23. Canonical deep neural networks 深層ニューラルネットワークとは何か 2層以上の中間層を持つニューラルネットワークを深層ニューラルネットワークと呼びます。 活性化関数activation function にはロジスティック関数logistic function が使われてきました  英語でS 字曲線の意味を持つシグモイド関数sigmoid function という言葉も用いられます。次のハ イパータンジェントもシグモイド関数です。 = σ ( x + )h1 W1 b1 = σ ( + )h2 W1 h1 b2 P = softmax ( + )Wo bo σ(x) = 1 1 + e −x ϕ(x) = tanh(x) = 2σ(2x) − 1.
  24. 24. 近年ではより簡単な非線形関数を用いる傾向があります。 ReLU など。 出力層における誤差,あるいは損失を参照にするような学習が行われます。 例えば損失としてクロ スエントロピー cross entropy を用いることにすれば あるいは次のように表記します。 回帰ではなくクラス分類の場合にはクロスエントロピー損失を用いることが 多いです。理由は [ニ ールセンのブログ]((http://neuralnetworksanddeeplearning.com/chap3.html) にも詳細に記述されて います。 和訳またングのビデオ講義ロジステック回帰の説明に詳しいです。 主要パッケージでの関数 TensorFlow Pythontf.nn.sigmoid_cross_entropy_with_logits(logits,targets,name=None) Chainer Python chainer.functions.softmax_cross_entropy(x, t, use_cudnn=True, normalize=True, cache_score=True) Theano Pythontheano.tensor.nnet.nnet.categorical_crossentropy(coding_dist,true_dist) 再帰型ニューラルネットワークRNN: recurrent neural ReLU = max(0, x) l(t, y) = log(y)t T l(t, y) = − [ log( ) + (1 − ) log(1 − )] ∑ i=1 m ti yi ti yi
  25. 25. 再帰型ニューラルネットワークRNN: recurrent neural networks 再帰型ニューラルネットワークとは,系列処理に用いられます。 時刻$t$ と再帰結合(時間遅れの 結合)を導入して となります。 近年では機械翻訳,対話,文章生成,画像の説明文生成など 多くの応用分野を持ちます。 ほとん どが長短期記憶LSTM: long short-term memory と呼ばれるモデルを用いてます。 (t) = σ ( x(t) + (t − 1) + )h1 W1 h1 b1 (t) = σ ( (t) + (t − 1) + x )h2 W1 h2 h2 b2 P(t) = softmax ( (t) + )Wo bo
  26. 26. 次へ(エンドツーエンド)
  27. 27. End to End End to End のトレンド 古典的パタン認識モデル (1950年代後半以来) 固定的/工学特徴 (or 固定カーネル) + 学習可能分類器 End-to-end 学習 / 特徴学習 / 深層学習 学習可能な特徴 (or カーネル) + 学習可能な分類器 簡易学習可能 分類器 手工芸的 特徴抽出器 学習可能 分類器 学習可能 特徴抽出器
  28. 28. 音声認識199年代から2010年くらいまで 物体認識2006年から2012年 固定 教師なし学習 教師あり学習 分類器MFCC 混合ガウシアン モデル 分類器SIFT HOG k-平均 疎性コーディング プーリ ング 固定 教師なし学習 教師あり学習 低次特徴抽出 中間レベル特徴抽出 メル周波数 ケプトグラム係数 音声情報 視覚情報 次へ(簡単な歴史)
  29. 29. brief history 先達の努力の歴史 電気生理学的研究
  30. 30. マーの視覚の計算論
  31. 31. 携帯電話のカメラのピンぼけが少なくなった理由
  32. 32. ついに人間超え
  33. 33. ニューラルネットワークの始まりは古く
  34. 34. https://upload.wikimedia.org/wikipedia/commons/3/30/Chemical_synapse_schema_cropped.jpg マッカロックとピッツは数式として表現
  35. 35. マッカロックとピッツの形式ニューロンは以下のように表現される: (object): (inputs): cell npsum(inputs selfW) selfb y 1.0 (1.0 npexp(cell)) y 文学的表現をすると,各ニューロンは numpy を使ってシグモイド関数によって入力情報を変換す る。 伝統的にロジスティック関数が使われてきた  。 近年ではより簡単な非線 形関数を用いる。ReLU など。 = f ( )yi ∑j wj xj σ(x) = 1/(1 + )e −x ReLU = max(0, x)
  36. 36. -1.0 0.0 1.0 2.0 3.0 4.0 -1.0 0.0 1.0 2.0 3.0 4.0 outputvalue input state tanh linear softplus sigmoid ReLU 小テスト ちなみにTheano のscan を使うとするとプロトタイプは以下のようになります。 outputs,updates theanoscan( fn a_function,
  37. 37. sequnces loop_over, n_steps number_to_iteration, outputs_info [init_value], non_sequnces not_varied, ) (some_args): something(some_args) 系列 loop_over をステップ number_to_iteration に渡って a_function を評価する,という意味合い になります。 出力outputs は全出力を連結した配列が返ります。 他のコンピュータ言語で用いられ る繰り返し表現の抽象化とみなすことができます。 updates は変動分ですが_ として無視すること も行われます。
  38. 38. 福島先生(1982)のネオコグニトロン
  39. 39. LeNet5(1998)
  40. 40. Hinton NIPS2007 チュートリアルより
  41. 41. Hinton NIPS2007 チュートリアルより
  42. 42. Hinton NIPS2007 チュートリアルより
  43. 43. Hinton NIPS2007 チュートリアルより
  44. 44. Hinton NIPS2007 チュートリアルより
  45. 45. Hinton NIPS2007 チュートリアルより
  46. 46. Hinton (2006)
  47. 47. fastest way 最速で理解するには 最低限を寄り道せずに最速で理解しようとすれば以下の話題を抑える必要があるでしょう 1. 線形回帰linear regression 2. 多項回帰polynomial regression 3. ロジステック回帰logistic regression 4. 正則化 5. 多層パーセプトロンMLP: multi-layered Perceptrons 6. 畳み込みニューラルネットワークCNN: conventional neural networks 7. リカレントニューラルネットワークRNN: recurrent neural networks 8. 強化学習  reinforcement learning 5 以下は本書でも取り上げました 次へ(参考サイト)
  48. 48. useful links 参考サイト マイケルニールセンのチュートリアル マイケルニールセンのチュートリアルの和訳プロジェクト Theanoのチュートリアル アンドリュー  ング(Andrew Ng)による  coursera ビデオ講義 フォローアップアンケート
  49. 49. follow up フォローアップアンケート 次 回 以 降 の 参 考 に し ま す の で ア ン ケ ー ト に ご 協 力 く だ さ い 。 https://goo.gl/forms/cijNs5Ms2mwcVF6E3 はじめにもどる

×