Submit Search
Upload
PythonでDeepLearningを始めるよ
•
Download as PPTX, PDF
•
6 likes
•
3,726 views
T
Tanaka Yuichi
Follow
PythonでDeepLearningの仕組みを見ていきます。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 32
Download now
Recommended
Bluemixを使ったTwitter分析
Bluemixを使ったTwitter分析
Tanaka Yuichi
SparkとJupyterNotebookを使った分析処理 [Html5 conference]
SparkとJupyterNotebookを使った分析処理 [Html5 conference]
Tanaka Yuichi
Apache Sparkを使った感情極性分析
Apache Sparkを使った感情極性分析
Tanaka Yuichi
Big datauniversity
Big datauniversity
Tanaka Yuichi
BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ
BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ
Tanaka Yuichi
Watson summit 2016_j2_5
Watson summit 2016_j2_5
Tanaka Yuichi
ApacheSparkを中心としたOSSビッグデータ活用と導入時の検討ポイント
ApacheSparkを中心としたOSSビッグデータ活用と導入時の検討ポイント
Tanaka Yuichi
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
Tanaka Yuichi
Recommended
Bluemixを使ったTwitter分析
Bluemixを使ったTwitter分析
Tanaka Yuichi
SparkとJupyterNotebookを使った分析処理 [Html5 conference]
SparkとJupyterNotebookを使った分析処理 [Html5 conference]
Tanaka Yuichi
Apache Sparkを使った感情極性分析
Apache Sparkを使った感情極性分析
Tanaka Yuichi
Big datauniversity
Big datauniversity
Tanaka Yuichi
BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ
BigDataUnivercity 2017年改めてApache Sparkとデータサイエンスの関係についてのまとめ
Tanaka Yuichi
Watson summit 2016_j2_5
Watson summit 2016_j2_5
Tanaka Yuichi
ApacheSparkを中心としたOSSビッグデータ活用と導入時の検討ポイント
ApacheSparkを中心としたOSSビッグデータ活用と導入時の検討ポイント
Tanaka Yuichi
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
初めてのSpark streaming 〜kafka+sparkstreamingの紹介〜
Tanaka Yuichi
Jjug ccc
Jjug ccc
Tanaka Yuichi
Devsumi 2016 b_4 KafkaとSparkを組み合わせたリアルタイム分析基盤の構築
Devsumi 2016 b_4 KafkaとSparkを組み合わせたリアルタイム分析基盤の構築
Tanaka Yuichi
Pysparkで始めるデータ分析
Pysparkで始めるデータ分析
Tanaka Yuichi
HBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejp
FwardNetwork
Pythonで入門するApache Spark at PyCon2016
Pythonで入門するApache Spark at PyCon2016
Tatsuya Atsumi
Spark GraphX で始めるグラフ解析
Spark GraphX で始めるグラフ解析
Yosuke Mizutani
Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
Future Of Data Japan
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
Apache Sparkの紹介
Apache Sparkの紹介
Ryuji Tamagawa
20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark
Ryuji Tamagawa
本当にあったApache Spark障害の話
本当にあったApache Spark障害の話
x1 ichi
Apache cassandraと apache sparkで作るデータ解析プラットフォーム
Apache cassandraと apache sparkで作るデータ解析プラットフォーム
Kazutaka Tomita
SparkやBigQueryなどを用いたモバイルゲーム分析環境
SparkやBigQueryなどを用いたモバイルゲーム分析環境
yuichi_komatsu
1000台規模のHadoopクラスタをHive/Tezアプリケーションにあわせてパフォーマンスチューニングした話
1000台規模のHadoopクラスタをHive/Tezアプリケーションにあわせてパフォーマンスチューニングした話
Yahoo!デベロッパーネットワーク
Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題
Takeshi Yamamuro
Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本
Sotaro Kimura
ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!
Nagato Kasaki
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
Kazuki Taniguchi
Apache Sparkについて
Apache Sparkについて
BrainPad Inc.
Spark勉強会_ibm_20151014-公開版
Spark勉強会_ibm_20151014-公開版
Atsushi Tsuchiya
Introduction to NumPy & SciPy
Introduction to NumPy & SciPy
Shiqiao Du
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
infinite_loop
More Related Content
What's hot
Jjug ccc
Jjug ccc
Tanaka Yuichi
Devsumi 2016 b_4 KafkaとSparkを組み合わせたリアルタイム分析基盤の構築
Devsumi 2016 b_4 KafkaとSparkを組み合わせたリアルタイム分析基盤の構築
Tanaka Yuichi
Pysparkで始めるデータ分析
Pysparkで始めるデータ分析
Tanaka Yuichi
HBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejp
FwardNetwork
Pythonで入門するApache Spark at PyCon2016
Pythonで入門するApache Spark at PyCon2016
Tatsuya Atsumi
Spark GraphX で始めるグラフ解析
Spark GraphX で始めるグラフ解析
Yosuke Mizutani
Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
Future Of Data Japan
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
NTT DATA OSS Professional Services
Apache Sparkの紹介
Apache Sparkの紹介
Ryuji Tamagawa
20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark
Ryuji Tamagawa
本当にあったApache Spark障害の話
本当にあったApache Spark障害の話
x1 ichi
Apache cassandraと apache sparkで作るデータ解析プラットフォーム
Apache cassandraと apache sparkで作るデータ解析プラットフォーム
Kazutaka Tomita
SparkやBigQueryなどを用いたモバイルゲーム分析環境
SparkやBigQueryなどを用いたモバイルゲーム分析環境
yuichi_komatsu
1000台規模のHadoopクラスタをHive/Tezアプリケーションにあわせてパフォーマンスチューニングした話
1000台規模のHadoopクラスタをHive/Tezアプリケーションにあわせてパフォーマンスチューニングした話
Yahoo!デベロッパーネットワーク
Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題
Takeshi Yamamuro
Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本
Sotaro Kimura
ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!
Nagato Kasaki
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
Kazuki Taniguchi
Apache Sparkについて
Apache Sparkについて
BrainPad Inc.
Spark勉強会_ibm_20151014-公開版
Spark勉強会_ibm_20151014-公開版
Atsushi Tsuchiya
What's hot
(20)
Jjug ccc
Jjug ccc
Devsumi 2016 b_4 KafkaとSparkを組み合わせたリアルタイム分析基盤の構築
Devsumi 2016 b_4 KafkaとSparkを組み合わせたリアルタイム分析基盤の構築
Pysparkで始めるデータ分析
Pysparkで始めるデータ分析
HBaseとSparkでセンサーデータを有効活用 #hbasejp
HBaseとSparkでセンサーデータを有効活用 #hbasejp
Pythonで入門するApache Spark at PyCon2016
Pythonで入門するApache Spark at PyCon2016
Spark GraphX で始めるグラフ解析
Spark GraphX で始めるグラフ解析
Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
Spark Streamingを活用したシステムの検証結果と設計時のノウハウ
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkの紹介
Apache Sparkの紹介
20160127三木会 RDB経験者のためのspark
20160127三木会 RDB経験者のためのspark
本当にあったApache Spark障害の話
本当にあったApache Spark障害の話
Apache cassandraと apache sparkで作るデータ解析プラットフォーム
Apache cassandraと apache sparkで作るデータ解析プラットフォーム
SparkやBigQueryなどを用いたモバイルゲーム分析環境
SparkやBigQueryなどを用いたモバイルゲーム分析環境
1000台規模のHadoopクラスタをHive/Tezアプリケーションにあわせてパフォーマンスチューニングした話
1000台規模のHadoopクラスタをHive/Tezアプリケーションにあわせてパフォーマンスチューニングした話
Sparkのクエリ処理系と周辺の話題
Sparkのクエリ処理系と周辺の話題
Kafkaを活用するためのストリーム処理の基本
Kafkaを活用するためのストリーム処理の基本
ゼロから始めるSparkSQL徹底活用!
ゼロから始めるSparkSQL徹底活用!
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
QConTokyo2015「Sparkを用いたビッグデータ解析 〜後編〜」
Apache Sparkについて
Apache Sparkについて
Spark勉強会_ibm_20151014-公開版
Spark勉強会_ibm_20151014-公開版
Similar to PythonでDeepLearningを始めるよ
Introduction to NumPy & SciPy
Introduction to NumPy & SciPy
Shiqiao Du
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
infinite_loop
なにわテック20180127
なにわテック20180127
Natsutani Minoru
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
LeapMind Inc
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
infinite_loop
Fpgax20180217
Fpgax20180217
Natsutani Minoru
もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…
Yasumasa Suenaga
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Koichi Sasada
第3回 JavaScriptから始めるプログラミング2016
第3回 JavaScriptから始めるプログラミング2016
kyoto university
Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化
Masashi Shinbara
静的サイトどこにする?
静的サイトどこにする?
ogawatti
[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...
[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...
Insight Technology, Inc.
Ansible handson ood2016
Ansible handson ood2016
Hideki Saito
Apache Auroraの始めかた
Apache Auroraの始めかた
Masahito Zembutsu
Reactive programming
Reactive programming
Yasuki Okumura
[Oracle big data jam session #1] Apache Spark ことはじめ
[Oracle big data jam session #1] Apache Spark ことはじめ
Kenichi Sonoda
Django_Fukuoka
Django_Fukuoka
Shuya Motouchi
Django_fukuoka
Django_fukuoka
ShuyaMotouchi1
F#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみている
pocketberserker
Subprocess no susume
Subprocess no susume
Makoto Kishimoto
Similar to PythonでDeepLearningを始めるよ
(20)
Introduction to NumPy & SciPy
Introduction to NumPy & SciPy
ゲームのインフラをAwsで実戦tips全て見せます
ゲームのインフラをAwsで実戦tips全て見せます
なにわテック20180127
なにわテック20180127
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
20180613 [TensorFlow分散学習] Horovodによる分散学習の実装方法と解説
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
Fpgax20180217
Fpgax20180217
もしも… Javaでヘテロジニアスコアが使えたら…
もしも… Javaでヘテロジニアスコアが使えたら…
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
Cookpad 17 day Tech internship 2017 言語処理系入門 Rubyをコンパイルしよう
第3回 JavaScriptから始めるプログラミング2016
第3回 JavaScriptから始めるプログラミング2016
Ansible ではじめるサーバ作業の自動化
Ansible ではじめるサーバ作業の自動化
静的サイトどこにする?
静的サイトどこにする?
[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...
[db analytics showcase Sapporo 2017] A15: Pythonでの分散処理再入門 by 株式会社HPCソリューションズ ...
Ansible handson ood2016
Ansible handson ood2016
Apache Auroraの始めかた
Apache Auroraの始めかた
Reactive programming
Reactive programming
[Oracle big data jam session #1] Apache Spark ことはじめ
[Oracle big data jam session #1] Apache Spark ことはじめ
Django_Fukuoka
Django_Fukuoka
Django_fukuoka
Django_fukuoka
F#+Erlangで簡単なシューティングゲームを作ってみている
F#+Erlangで簡単なシューティングゲームを作ってみている
Subprocess no susume
Subprocess no susume
Recently uploaded
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
Recently uploaded
(9)
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
PythonでDeepLearningを始めるよ
1.
© 2016 IBM
Corporation Pythonをつかってディープ・ラーニングの仕 組みを見ていくよ Tanaka Y.P 2016-10-18
2.
© 2016 IBM
Corporation2 お詫びと言い訳 (仮)Sparkで試してみるディープ・ラーニング 昨今、人工知能関連で最大の話題であるDeep Learningを、Apache Sparkを使って実装する方法について体験していただくハンズ・オン・セッ ションです。 Pythonをつかってディープ・ラーニングの仕組みを見ていくよ 昨今、人工知能関連で最大の話題であるDeep Learningを、Numpyを 使って実装する方法について体験していただくハンズ・オン・セッションで す。
3.
© 2016 IBM
Corporation3 自己紹介 田中裕一(yuichi tanaka) 主にアーキテクチャとサーバーサイドプログラムを担当 することが多い。Hadoop/Spark周りをよく触ります。 Node.js、Python、最近はSpark周りの仕事でScalaを書く ことが多い気がします。 休日はOSS周りで遊んだり。 詳解 Apache Spark
4.
© 2016 IBM
Corporation4 DeepLearningとは • 機会学習の一つであるNNの層を重ね高精度な予測・分類処理を行うための手法 • 色々な関数の層を重ねて精度を向上させる • 画像識別の分野で精度が高くて有名(ResNet/GoogLeNet等) 例)VGG16
5.
© 2016 IBM
Corporation5 さっきのを簡略に書き直すと Data Convo lution Relu Affine Relu Softmax Out ・・・ max poolin g VGG16の簡略図
6.
© 2016 IBM
Corporation6 今日のゴール • 今日は最終的に下記のNN(fully-connected)を作成します。 • 今日の例では特に層を厚くする意味もないですがせっかくなのでDNNっぽく・・・ Data Affine Relu Affine Relu Softmax Out・・・ Affine
7.
© 2016 IBM
Corporation7 今日の範疇 今日の話の中で説明すること 背景的な話 DeepLearningの全体像 レイヤ フォワード • アフィン変換 活性化関数について • ReLU関数 出力層での正規化関数 • ソフトマックス関数 バックプロパゲーション 損失関数 誤差伝搬について ハイパーパラメータ
8.
© 2016 IBM
Corporation8 今日の範疇 今日の話の中で説明しないこと DeepLearningの種類的な違いとかの細かいこと 畳み込みニューラルネットワーク:CNN@触れる程度で 再帰ニューラルネットワーク:RNN 教師なし学習:GAN 強化学習:DQN 数式の話 『うぇ』ってなるので数式なしで 内積の話@アフィン変換 ネイピア数@ところどころ 各関数の詳細@特にバックプロパゲーションの関数 Batch Norm@各レイヤの値の分布調整 Dropoutについて@過学習とか
9.
© 2016 IBM
Corporation9 背景 人間の脳の構造を模してやれば上手く識別できるのは? ニューロン情報処理モデル 例)単純パーセプトロン I I I W W W S O Input1 Input2 Input3 output 参考) 単純パーセプトロンの基本のき Weight
10.
© 2016 IBM
Corporation10 背景 層をふやしてやれば上手く識別できるのは? 例)FF-NN I I I Input1 Input2 Input3 output O O
11.
© 2016 IBM
Corporation11 今日のサンプル(色の識別:3つに分類) • 何色ですか? RGB(255,0,0) RGB(0,255,0) RGB(0,0,255) RGB(233,63,127) 赤 緑 青 赤
12.
© 2016 IBM
Corporation12 今日のサンプルNN(色の識別)の用語説明 • こんな形のFully-Connectedを作成していきます。 Out ・・・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 入力層 隠れ層 出力層 Softmax
13.
© 2016 IBM
Corporation13 今日のサンプルNN(色の識別)の用語説明 • こんな形のFully-Connectedを作成していきます。 ・・・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 0層(入力層) 1層 4層(出力層)2層 計算処理 活性化関数 出力関数 レイヤ Softmax Out
14.
© 2016 IBM
Corporation14 今日のサンプルNN(色の識別)の用語説明 • こんな形のFully-Connectedを作成していきます。 ・・・ Forward Backward ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ 計算処理 Affine変換 活性化関数 Relu関数 出力関数 Softmax関数 OutSoftmax
15.
© 2016 IBM
Corporation15 フォワード(入力レイヤ -> Affine) 122 66 94 n1 ・ ・ ・ ・ ・ ・ RGBの値でフォワードとバックプロパゲーションについて見ていきます。 入力値 : RGB(122, 66, 94) n1:発火のしやすさ(バイアス)、各重み Rの値 * Rの重み Gの値 * Gの重み Bの値 * Bの重み 122 66 94 n1 Rの重み Gの重み Bの重み バイアス
16.
© 2016 IBM
Corporation16 フォワード(入力レイヤ -> Affine) バイアスと重みを使ってどのくらい発火するか計算します。 入力値 : RGB(122, 66, 94) n1:バイアス、重み Rの値 * Rの重み Gの値 * Gの重み Bの値 * Bの重み 122 66 94 n 1 Rの重み Gの重み Bの重み 122 66 94 n 1 Rの重み Gの重み Bの重み bias バイアス バイアス (122 * Rの重み) + (66 * Gの重み) + (94 * Bの重み) + バイアス
17.
© 2016 IBM
Corporation17 フォワード(入力レイヤ -> Affine) 入力値と重みの内積にバイアスを足したもの 122 66 94 n1 n2 n3 ・ ・ ・ ・ ・ ・ bias output = Input ・ weight + bias 122,66,94 n1R,n2R,n3R n1G,n2G,n3G n1B,n2B,n3G ・ ・ ・ n1B,n2B,n3B,・・・ pythonコード: out = x.dot(w) + b n1O,n2O,n3O,・・・
18.
© 2016 IBM
Corporation18 フォワード(Affine -> Relu) Affineの出力結果を活性化関数Reluを使って活性化させます ・ ・ ・ ・ ・ ・ ・ ・ ・ s1 = np.array([[122, 66, 94]]) w1 = np.array([[0.1], [0.2],[0.3]]) s1.dot(w1) + [0.5] [ 54.1] 例)Affineの重み・バイアスを決め打ちで計算 n1 54.1
19.
© 2016 IBM
Corporation19 フォワード(Affine -> Relu) Relu関数はx<=0なら0をx>0ならxを返す。(超簡単) Relu関数の図 n1 54.1 54.1 phthonコード return np.maximum(0,x)
20.
© 2016 IBM
Corporation20 フォワード(Affine -> 出力レイヤ) Softmax関数で最終値を扱いやすい形に変換 Softmax関数 pythonコード e = np.exp(x) sum_e = e.sum() return e / sum_e Softmax n1 n2 n3 出力例 [0, 0.1, 5.3] => [ 0.00493969, 0.0054592 , 0.98960111] 98%の確率で青と判定!
21.
© 2016 IBM
Corporation21 バックプロパゲーション • 各nodeの重みとバイアスは? ・・・ Backward ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ OutSoftmax
22.
© 2016 IBM
Corporation22 バックプロパゲーション(損失関数) • 各nodeの重みとバイアスは? ・・・ Backward ・ ・ ・ ・ ・ ・ OutSoftmax RGB(122, 66, 94) 教師Label [1,0,0] 初期値を当てる Forward 教師Label [1,0,0] 出力 [0.3,0.28,0.32] 損失関数 誤差修正 交差エントロピー誤差
23.
© 2016 IBM
Corporation23 バックプロパゲーション(誤差伝搬) ・・・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ Softmax Backward 本来は勾配という微分計算を全パラメータに対して行う必要があるところ、 誤差逆伝搬法を使うことで出力層側から入力層側に向かって 単純計算だけでパラメータの更新を行います。
24.
© 2016 IBM
Corporation24 バックワード(出力レイヤ(Softmax + 交差エントロピー誤差)) Softmax関数 + 交差エントロピー誤差 yk - tk pythonコード dx = (self.y - self.t) Softmax n1 n2 n3 ここからはバックワードする際のコードと式を紹介だけします。 Softmax y1 – t1 y2 – t2 y3 – t3 損失関数
25.
© 2016 IBM
Corporation25 バックワード(Affine -> Relu) pythonコード dx = dout.dot(self.w.T) #出力 w = dx.T.dot(dout) #重み b = dout.sum(axis=0) #バイアス Affine変換の式は重み・バイアス・入力の3値を計算します ・ ・ ・ ・ ・ ・ Affine変換の重み・バイアス
26.
© 2016 IBM
Corporation26 バックワード(Relu -> Affine) pythonコード dout[self.mask] = 0 Relu関数は値を反転してあげるだけ ・ ・ ・ ・ ・ ・
27.
© 2016 IBM
Corporation27 フォワードとバックワード Data Affine Relu Affine Relu Softmax Out・・・ Affine Forward Forward Forward Forward Forward Forward Forward Backward BackwardBackwardBackwardBackwardBackwardBackward • Foward -> Backwordを繰り返し処理を行うことで重み・バイアスの更新が可能になります
28.
© 2016 IBM
Corporation28 もう一度CNNを見てみよう Data Convo lution Relu Affine Relu Softmax Out ・・・ max poolin g VGG16の簡略図
29.
© 2016 IBM
Corporation29 ハイパーパラメータについて(層の数とNodeの数) ・・・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ Softmax • NNでは各関数の重みやバイアスを自動で調整していく事で精度を上げます • ではNNではパラメータの調整は全て不要なのでしょうか? 全体で幾つの層を重ねるのか? 1層に幾つのNode を作るのか?
30.
© 2016 IBM
Corporation30 ハイパーパラメータについて(ネットワーク全体の学習率) Affine変換の重み・バイアス ・・・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ Softmax Affine変換の重み・バイアス Affine変換の重み・バイアス どのぐらいの強さで重み・バイアスを更新するのか? 学習率学習率学習率
31.
© 2016 IBM
Corporation31 今日のサンプルプログラム ・・・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ Softmax Affine変換の重み・バイアス 学習率:0.01 全体4層 50 100 503 3 入力データ数 train: 240 test: 20
32.
© 2016 IBM
Corporation32 DataScientistExperienceへ Notebookはこちらそれではコードに移ります
Editor's Notes
1
会社ではSparkとHadoopのスペシャリストやってます。
DeepLearningとは
今日は画像処理などややこしいことを行わず、純粋にAffine変換とRelu関数、最後のSoftmax関数のみを使ってNNを作成します。 ただ、せっかくなのでAffine+Reluを4層にしてDNNっぽく作ります。 今日のサンプルソースコードでは色(RGB)の分類を扱います。 #ちなみに色の分類行うのにわざわざDNNを作ったりはしません。説明用。
Rectified linear unit
元々NN系の機会学習は人間の脳の構造を模せば、識別処理が上手くいくのではというところから始まってます。
で、単純パーセプトロンは、非線形の分析ができないということで、FF-NN(多層パーセプトロン)に進化していきます。
今日はこのあたりからやってきます。
まず入力レイヤから見ていきます。
余談ですが、このNNに画像を入れる場合 30*30の画像で入力層が900になります。多いですね。
また余談です。今回簡素化のため正規化かけてませんが、入力値の正規化は重要です。 今日のサンプルはこのAffine変換と活性化関数Reluを3層重ねてます。
この層で結果[1,0,0] ここでForwardの処理は終わりです。ね簡単でしょ?ここまでなら・・・
この時の問題として 例えば50のnodeを作ると、今回のケースでいきなり150個の重みと50個のバイアスを適切な値 これ無理ですよね? 出力結果をもとに重みやバイアスを調整するのを誤差伝搬
実際のコードはSoftmax関数内で損失関数の計算もやってる 初期値はガウス分布
確率勾配を用いて パラメータの微分は独立なものではなく、 レイヤのパラメータに関する誤差関数の微分は、 一つ前の層のレイヤのパラメータの微分が求まっていると、 微分計算をしなくても自動的に単純計算で決まる、つまり微分やらなくても良いので高速
次はAffine変換
Input(教師データ)だけ用意すればNNを通して各パラメータを自動的に算出してくれます。 これがend-to-endの機会学習と言われる所以ですね。 例えばTensorFlowやchainerやcaffe
このDNNをCNNにしたい場合はいくつかの層を Convolutionとmax poolingの関数を作って入れ替えてあげればCNNの完成です。
今日はこんな感じのパラメータで作ります。
Download now