SlideShare ist ein Scribd-Unternehmen logo
1 von 51
AI入門 第4回
「ディープラーニングの中身を
覗いて、育ちを観察する」
~TensorBoardで初めて学ぶ、AI・MLの数学・アルゴリズム~
2018/01/25 ver0.5作成
1
AI入門 第1回は、「TensorFlowによる画像処理」にて、手元
のPCで気軽にディープラーニングできることを体験しました
AI入門 第2回は、「Mahoutでレコメンドエンジン」にて、AWS
のSparkでのデータ処理後、Mahoutを呼ぶ例をご紹介しました
ここまでのAI入門 振り返り
tabby cat
(トラ猫) tiger cat
(トラ猫)
beaker
(ビーカー)
Persian cat
(ペルシャ猫)Egyptian cat
(エジプト猫)
2
AI入門 第3回は、「Kerasによる時系列データ分析・推論」にて、
やはり手元のPCで気軽にデータの未来予測を体験しました
第3回の内容をベースに、KerasでのAI・MLプログラミング入門
も行い、実際に動くAI・MLをお手元に持つところまで行きました
ここまでのAI入門 振り返り
3
機械学習・ディープラーニングを扱っているにも関わらず、
「数式や複雑なアルゴリズムの説明が一切、出てこなかった」
ということです
現在、ほとんどの機械学習・ディープラーニングの学習コンテンツ
や書籍は、必ず数式やアルゴリズムによる説明をしており、難しい
内容が羅列される、難解な分野だという雰囲気を醸しています
その閉塞感をブレイクするために、本AI入門シリーズでは、数式
を使わなくとも、AI・MLに触れ、理解・活用していくことができると
いうコンセプトで進めてきました
では数式やアルゴリズムへの理解は、不要なのでしょうか?
ここまでの共通点は?
4
入門として、「まず動かしてみる」をクリアする前に、数式やアルゴ
リズムを覚えるのは、非常に非効率かつ目的を見失いがちなため、
本AI入門シリーズでも非推奨としてきました
しかし、シリーズを通して、
①大雑把な概念を理解し、
②実際に動くコードが手に入り、
③「AI・MLへの過度な期待や幻想」がブレイクされた
…という状況の今、AI・MLを更に深堀りするか否か、に結論が
出たのでは無いかと思われます (ということで良いですか?w)
その上で、お集りいただき、前進するのであれば、ようやく数式や
アルゴリズムの理解をする土台が整った、ということです
そんなことはありません
5
エンジニアの多くが、数式そのものに馴染みが薄い方も多く、また
AI・MLで扱うアルゴリズムは、一般的なアルゴリズムというよりも、
統計系のアルゴリズムが多く、統計やマーケティングに携わる方で
無い限り、触る機会もありません
そのため、数式・アルゴリズムを単品で見ていくのは、骨が折れる
プロセスになりがちなため、実際の動作を確認しながら覚えていく、
といった工夫が必要です
動作の確認を容易にするには「動作の視覚化」が最も有効です
今回扱う「TensorBoard」は、ディープラーニングの動作過程を
視覚化するツールであり、これとセットで数式・アルゴリズムを理解
していけば、教材や書籍をただ読むより効率的と考えます
とはいえ、数式とアルゴリズムだけでの理解は厳しい
6
AI・ML開発の注意点 【最重要】
AI・ML開発でのプログラミング習得は、通常のプログラミングとは
異なるポイントがあるため、以下3点を意識して徹底してください
※これらポイントは、経験の多い、デキるエンジニアほど罠にハマり
やすく、逸脱時は、AI・ML開発の習得が、かなり非効率となり、
最悪、全く習得できないまま脱落する可能性もあります
■AI・MLプログラミング習得の3つの最重要ポイント
① 「何故これで動くのか?」「この処理やパラメータの意味は?」
という”詳細”に疑問を抱かず、全体像をザックリ押さえること
② Kerasの各種ブラックボックスを最初から開けないこと
③ 良いサンプルを幾つか体験する前から、近道を探さないこと
7
AI・ML開発の注意点 【最重要】
①「何故これで動くのか?」「この処理やパラメータの意味は?」と
いう”詳細”に疑問を抱かず、全体像をザックリ押さえること
疑問解決には、以下トリプルスキルが必要で、相当困難です
①偏微分・・・学習時の「誤り訂正法」のベースはこれ。誤差逆伝搬もこれ
②集合・・・クラス分類やクラスタリング、自己組織化マップ(SOM)等のデータをグルーピングする手法
③確率/統計・・・尤度関数や誤差関数/損失関数、勾配降下法といった「学習時の最適化問題」の解決のための関数群
④数学述語・・・線形・非線形。SGDは線形、SVRは非線形。NOT/ORのニューラルネット学習は線形、XORのニューラルネット学習は非線形
⑤アルゴリズムとして適用される関数群・・・活性化関数群(ロジスティック回帰、ソフトマックス関数など)、学習関数群(モメンタム、Adagrad、Adamなど)
⑥ベクトル/テンソル・・・プログラミングで言うところのn次元配列とその演算群
⑦上記中に出てくる基礎数学・・・指数、log、底など。プログラミングで言えば、変数や算術関数に相当。数式をスラスラ読んで苦にならないレベル
a) 数学スキル
①問題解決可能なニューラルネットワーク層数
②ディープラーニングモデルとその亜種
③勾配消失問題
④過学習、アーリーストッピング
⑤ドロップアウト
⑥学習結果評価手法
⑦学習前データ前処理/バッチノーマライゼーション
b) 機械学習固有スキル
①Python一般
②Numpy
③Keras、TensorFlow
④matplotlib他
c) Pythonプログラミングスキル
8
AI・ML開発の注意点 【最重要】
②Kerasの各種ブラックボックスを最初から開けないこと
Keras、もしくはそのベースとなっているTensorFlow、もしくは
Numpyの関数群は、高度な処理群がカプセル化されている
(一部は、前述した数学的知識もカプセル化されている) ため、
Pythonに慣れた人であっても、読み解くのに難儀なレベルであり、
Pythonを普段使いしていない方であれば、読み解くことは、ほぼ
不可能と思います
ここを、他言語の他ライブラリ/フレームワークと似たようなノリで、
「言語の勉強のついで」程度で読み解こうと思ったら大間違いで、
「Linuxカーネルをハックする」位のノリだと、捉えていただければ、
中々手を出す方もいないのでは無いかと思います
9
AI・ML開発の注意点 【最重要】
③良いサンプルを幾つか体験する前から、近道を探さないこと
AI・MLプログラミングは、通常のプログラミング言語に慣れている
方にとっても、全く異なるプログラミングパラダイムになります
ですので、いつもの慣れ親しんだプログラミングのノリで最短ルート
を探し始めると、とんでもない遠回りをすることになるでしょう
たとえば、前述の”詳細”に疑問を抱くことや、ブラックボックス解明
することは、優秀なエンジニア/プログラマであればあるほど、思考
習慣として、身についていると思いますが、全く異なるパラダイムの
ため、役に立つどころか、むしろ習得の足枷になり兼ねません
まっさらな頭で、詳細では無く、全体を掴むことに集中しましょう
10
事前確認②:AI・ML開発の注意点 【最重要】
11
AI・ML開発の注意点 【最重要】
具体的な思考/行動基準としては、以下のような感じです
① 疑問点が湧いても、イチイチ引っかからず、前に進み続ける
→「こんなもんなんだ」程度に認識すればいい
→本当に調べなければならないものなら、また出会う
→逆に、イチイチ引っかかると、大事な学びの機会を失う
「知らないことをイチから学んでいるんだから、分からないこと
だらけなのは仕方無いし、自分の考え方を広げる機会を
自分の”常識”に邪魔させない」という 素直さ が大事
② 今は理解できなくても、焦らず気にせず、淡々とやり続ける
そのうち理解できるようになる自分自身を信じましょう
これを受け取れる方は、何を学んでも上達が速いでしょう(^_^)
12
混乱することは学びの一部
楽しんで!!
13
そして今度こそ本当に
14
本編
15
1. TensorBoardについて
2. Kerasについて
3. TensorBoardを使えるようにする
4. notの中で起こっていることを見る
5. 今度はあなたの手元で
目次
16
1.TensorBoardについて
17
1.TensorBoardについて
TensorBoardは、TensorFlow/Kerasの内部動作や学習
過程/結果を可視化するツールで、TensorFlowのパッケージ
に含まれています
さまざまなグラフやメトリクス、モジュール配置とその間のやり取りが
見え、アルゴリズムも表示されるため、数式とアルゴリズムの側面
をビジュアルに理解しやすくなります
https://www.tensorflow.org/get_started/summaries_and_tensorboard
18
2.Kerasについて
19
2.Kerasについて
Kerasは、TensorFlowをコアとして動作するラッパーライブラリで、
本来、数学を用いて、ニューラルネットワークやディープラーニング
を構築する必要があるところの大部分を代行してくれます
Kerasを使わず、TensorFlowそのままでコーディングした場合、
「学習」部分を数式に相当するコードで書くこととなります※が、
Kerasを使った場合は、数式を一切使わずとも、「学習」部分が
コーディングできるのが、最大の特徴です
https://keras.io/ja/
20
3.TensorBoardを使えるようにする
21
3.TensorBoardを使えるようにする
TensorBoardを使い始めるのに、3種類の方法があります
① 各種OS用のpip (Pythonパッケージマネージャ) 経由で
インストールする
② 【Windows、macOS】Anaconda(Python環境構築
マネージャ) 経由でインストールする
③ DockerからTensorFlowイメージをインスト―ル(pull)
する
Dockerが最もお手軽ではありますが、Dockerに不慣れな方が
立ち止まらないよう、Windows/macOSを使って解説します
22
3.TensorBoardを使えるようにする
「Anaconda」は、数学系、科学系、データ分析系のPython
パッケージを、一括でインストールでき、かつ複数の環境も管理で
きるアプリで、TensorBoardも簡単にインストールできます
23
3.TensorBoardを使えるようにする
ターミナルを起動します
24
3.TensorBoardを使えるようにする
Kerasをpipでインストールします
PythonコマンドでREPLが起動し、Kerasがエラー無くimport
できれば、インストールは成功です
exit()と打てば、Pythonを抜けて、ターミナルに戻ります
もしエラーが出たときは、前ページをやり直してください
# python
>>> import keras
Using TensorFlow backend.
>>>
>>> exit()
#
# pip install tensorflow
# pip install keras
25
3.TensorBoardを使えるようにする
TensorBoardを起動するためには、事前に学習した結果のログ
が必要なため、第3回の「not.py」にログ出力を仕込みます
import numpy as np
from keras.models import Sequential
from keras.layers import Dense, Activation
from keras.optimizers import SGD
import keras.callbacks
model = Sequential( [ Dense( input_dim = 1, units = 1 ), Activation( 'sigmoid' ) ] )
model.compile( loss = 'binary_crossentropy', optimizer = SGD( lr = 0.1 ) )
tensorboard = keras.callbacks.TensorBoard( log_dir = './log', histogram_freq = 1 )
callback_tensorboard = [ tensorboard ]
input = np.array( [ [ 0 ], [ 1 ] ] )
expected = np.array( [ [ 1 ], [ 0 ] ] )
model.fit( input, expected, epochs = 200, batch_size = 1, callbacks = callback_tensorboard,
validation_data = ( input, expected ) )
print()
classes = model.predict_classes( input, batch_size = 1 )
print( '###### classes ######' )
print( classes )
probably = model.predict_proba( input, batch_size = 1 )
print( '###### probably ######' )
print( probably )
26
3.TensorBoardを使えるようにする
以下コマンドで実行します
以下のような結果が返ってきます
logフォルダ配下に、「events.out.tfevents.~」で始まるログ
ファイルが作成されていれば、ログ出力成功です
Using TensorFlow backend.
Epoch 1/200
2/2 [==============================] - 4s - loss: 0.7516
Epoch 2/200
2/2 [==============================] - 0s - loss: 0.7363
…(略)…
Epoch 200/200
2/2 [==============================] - 0s - loss: 0.1349
###### classes ######
[[1]
[0]]
###### probably ######
[[ 0.84955114]
[ 0.09877715]]
# python not.py
27
3.TensorBoardを使えるようにする
以下コマンドでTensorBoardを起動すると、「6006」ポートで
待ち受けをするサーバが起動されます
上記、赤枠で囲ったURLをブラウザで見まると、以下のページが
表示され、これでTensorBoardの起動成功です
# tensorboard --logdir=./log
W0126 16:29:37.342810 Reloader tf_logging.py:86] Found more than one graph event
per run, or there was a metagraph containing a graph_def, as well as one or more graph
events. Overwriting the graph with the newest event.
TensorBoard 0.4.0 at http://Z-0000-000189-01:6006 (Press CTRL+C to quit)
28
4.notの中で起こっていることを見る
29
4.notの中で起こっていることを見る
最も、分かりやすい「GRAPHS」から見ていきます
このグラフは、下から上に、処理が進んでいることを示します
30
4.notの中で起こっていることを見る
「dense_1」をダブルクリックすると、model配下が展開され、
「activation」内の「Sigmoid」が呼ばれていることが分かります
model =
Sequential( [ Dense( input_dim = 1, units = 1 ),
Activation( 'sigmoid' ) ] )
コードで言えば、下記に該当
しています
31
4.notの中で起こっていることを見る
「Sigmoid」は「シグモイド関数」を意味しており、その理解まで
辿り着く事前知識として、「学習」のプロセスを見ていきます
たとえば、入力x (範囲は0~1) を、そのまま出力yとする場合、
以下表のような入出力の関係となり、学習する必要は無いです
これを式で表すと、以下の通りです
y = x
x y
0 0
1 1
入力x 出力y
32
4.notの中で起こっていることを見る
次は、入力の0/1を反転させる、notの動きです
以下表のような入出力の関係となります
この反転を実現する式は、以下のようになります
これをニューラルネットワーク上に書くと、以下のようになります
入力x 出力y
y = -x + 1
乗算-1
加算+1
NOT
入力x 出力y
入力x 出力y
0 1
1 0
NOT
33
4.notの中で起こっていることを見る
もし、これら「乗算」「加算」を知らない前提として、それぞれ変数
にした場合、以下の式となります
notを実現する「a」と「b」を割り出すために、以下3つの変数を
導入します
① 「t」・・・期待する正解
② 「da」・・・aを正解に近づける幅
③ 「db」・・・bを正解に近づける幅
「tとyの差」でaとbを補正し、yが期待通りになるまで、つまり、
「aとbが正解を出せるようになる」まで、補正を繰り返します
(上記のような、項目を分解した幅を「偏微分」と呼びます)
y = ax + b
34
4.notの中で起こっていることを見る
「tとyの差」でaとbを補正する式は、以下の通りです
※この式の意味は、今のところ、理解できなくてもOKです
この式で補正される、aとbは、以下の通りの式となります
補正の過程は、以下の通りで、「t - y」が0となったら完了です
da = ( t - y ) x
db = ( t - y )
x t
0 1
1 0
試行数
1
2
0 1
1 0
3
4
0 15
a b
0 0
0 1
-1 0
-1 1
-1 1
y t - y
0 1
1 -1
0 1
0 0
1 0
da db
0 1
-1 -1
0 1
0 0
0 0
a = a + da
b = b + db
⊕
⊕
35
4.notの中で起こっていることを見る
このようにして、以下の式が導出できます
この補正アプローチを「誤り訂正学習法」と呼び、ニューラルネット
ワークにおける「学習」と言えば、この手法のことを指します
ニューラルネットワークに対する入力が、「1つ」から「2つ以上」に
増えても、ニューラルネットワーク層自体が増えても、この学習の
手法自体がやることは基本的に同じで、「乗算」と「加算」の組み
合わせの補正を期待値にマッチするまで繰り返すだけです
y = ax + b
= -x + 1
36
4.notの中で起こっていることを見る
誤り訂正の結果を、2次元で表すと、以下のようになります
真ん中を突っ切る線より上にある点が「1」、下にある点が「0」と
分類されるイメージで、これを「クラス分け」と言います
「1」
「0」
37
4.notの中で起こっていることを見る
コードの結果出力にも、「class」という単語が使われています
出てくる結果も、「0」か「1」を区別するものが出てきます
…
input = np.array( [ [ 0 ], [ 1 ] ] )
expected = np.array( [ [ 1 ], [ 0 ] ] )
model.fit( input, expected, epochs = 200, batch_size = 1, callbacks = callback_tensorboard,
validation_data = ( input, expected ) )
print()
classes = model.predict_classes( input, batch_size = 1 )
print( '###### classes ######' )
print( classes )
…
###### classes ######
[[1]
[0]]
38
4.notの中で起こっていることを見る
学習した結果は、この線で分類できたとして、未来にやってくる
「未知のデータ」が、この線で、確実に分類できるかどうかは不明
です (下記、赤枠の「1」のようなもの)
= 「1」
「1」
「0」
39
4.notの中で起こっていることを見る
そこで、この線でピッタリ「0」「1」を分けず、線から幅を持たせて、
曖昧に判定 (実際は確率として扱う) させることで、未知データ
適切に判定できるようにするのが、「シグモイド関数」です
= 「0」
「1」
「0」
40
4.notの中で起こっていることを見る
なお、この線からの距離は、クラス分けの間違いの原因となるため、
「損失」と呼びます
「学習」とは、この損失を限りなく小さくしていく処理で、そのために、
損失度合を評価する必要があり、それを計算する関数を指して、
「損失関数」と呼びます
「1」
「0」
41
4.notの中で起こっていることを見る
「損失関数」は、損失を限りなく小さくする、つまり、関数における
「最小値」を求める、という「最適解問題」ということになります
42
4.notの中で起こっていることを見る
「最適解問題」では、複数の最小値候補が挙がることがあるため、
以下の図のように、本来、期待される最適解で無い、「局所的
な最適解」にトラップされるケースがあります
※この近付く幅も「偏微分」で、この幅が大きいと学習は速い一方、正解に
近付きにくくなり、小さいと精度高いが、学習は遅くなります
43
4.notの中で起こっていることを見る
この「局所的な最適解」へのトラップを解消するアルゴリズムが、
AI・MLでは、多数出てきます
その1つが「SGD (Gradient Descent)」です
model.compile( loss = 'binary_crossentropy', optimizer = SGD( lr = 0.1 ) )
44
4.notの中で起こっていることを見る
SGDの他にも、以下のような、最適解を探索するアルゴリズムが
ありますが、それぞれ一長一短あり、選定し直すポイントとしては、
「学習の回数をどれだけ増やしても、パラメータをいじっても、損
失関数が小さくならないとき」は、別のものを試してみる、と良い
でしょう
 Adagrad
 RMSProp
 Adam
などなど
45
【余談】量子コンピュータでの最適解問題の解決
量子コンピュータの大きな方式の違いとして、「量子ゲート方式」
と「量子イジングマシン方式」の2種類あり、 「量子イジングマシン
方式」 の実装の1つである「量子アニーリング」では、以下の図の
ような、最適解を「同時に複数」、一気に探索開始します
46
【余談】量子コンピュータでの最適解問題の解決
各々の探索がトラップされた場合、「量子トンネル効果」により、
より低い位置へと勾配自体を通り抜け (量子テレポーテーション
と言います) し、探索を継続し、最適解を求めます
47
5.今度はあなたの手元で
48
5.今度はあなたの手元で
TensorBoardとコードを見ながら、AI・MLにおけるアルゴリズム
を読んでいくための基礎は、これで手に入りました
アルゴリズムを学ぶには、以下のサイト/書籍がオススメです
49
5.今度はあなたの手元で
お気付きかもしれませんが、本セッションでは、アルゴリズムの解説
は行っていますが、数式はやはり、ほとんど出てきていません (笑)
つまり、「数式無でも内部動作は理解できる」と捉えられます
こうした冷静な目で、巷に出回る書籍やサイトを眺めてみると、
「学ぶべき本質は何か?」が大事、ということが見えてきます
p.s.ちなみに、福岡にいて、「数式をガッツリ学びたい」という方は、
「福岡 理学部」か「重力プログラミング」なら抵抗感少な目(^_^)
50
ご清聴ありがとうございます

Weitere ähnliche Inhalte

Was ist angesagt?

ディープラーニングフレームワーク とChainerの実装
ディープラーニングフレームワーク とChainerの実装ディープラーニングフレームワーク とChainerの実装
ディープラーニングフレームワーク とChainerの実装Ryosuke Okuta
 
Chainer v1.6からv1.7の新機能
Chainer v1.6からv1.7の新機能Chainer v1.6からv1.7の新機能
Chainer v1.6からv1.7の新機能Ryosuke Okuta
 
2013.07.15 はじパタlt scikit-learnで始める機械学習
2013.07.15 はじパタlt scikit-learnで始める機械学習2013.07.15 はじパタlt scikit-learnで始める機械学習
2013.07.15 はじパタlt scikit-learnで始める機械学習Motoya Wakiyama
 
17ゼロから作るディープラーニング2章パーセプトロン
17ゼロから作るディープラーニング2章パーセプトロン17ゼロから作るディープラーニング2章パーセプトロン
17ゼロから作るディープラーニング2章パーセプトロンKeiichirou Miyamoto
 
mxnetで頑張る深層学習
mxnetで頑張る深層学習mxnetで頑張る深層学習
mxnetで頑張る深層学習Takashi Kitano
 
PythonによるDeep Learningの実装
PythonによるDeep Learningの実装PythonによるDeep Learningの実装
PythonによるDeep Learningの実装Shinya Akiba
 
TensorFlowとCNTK
TensorFlowとCNTKTensorFlowとCNTK
TensorFlowとCNTKmaruyama097
 
深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開Seiya Tokui
 
機械学習を用いた予測モデル構築・評価
機械学習を用いた予測モデル構築・評価機械学習を用いた予測モデル構築・評価
機械学習を用いた予測モデル構築・評価Shintaro Fukushima
 
Chainerの使い方と自然言語処理への応用
Chainerの使い方と自然言語処理への応用Chainerの使い方と自然言語処理への応用
Chainerの使い方と自然言語処理への応用Seiya Tokui
 
Androidで動かすはじめてのDeepLearning
Androidで動かすはじめてのDeepLearningAndroidで動かすはじめてのDeepLearning
Androidで動かすはじめてのDeepLearningMiyoshi Kosuke
 
Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015Ryosuke Okuta
 
科学技術計算関連Pythonパッケージの概要
科学技術計算関連Pythonパッケージの概要科学技術計算関連Pythonパッケージの概要
科学技術計算関連Pythonパッケージの概要Toshihiro Kamishima
 
Pythonによる機械学習入門 ~Deep Learningに挑戦~
Pythonによる機械学習入門 ~Deep Learningに挑戦~Pythonによる機械学習入門 ~Deep Learningに挑戦~
Pythonによる機械学習入門 ~Deep Learningに挑戦~Yasutomo Kawanishi
 
Practical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architecturesPractical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architecturesKoji Matsuda
 
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化marsee101
 
Jupyter NotebookとChainerで楽々Deep Learning
Jupyter NotebookとChainerで楽々Deep LearningJupyter NotebookとChainerで楽々Deep Learning
Jupyter NotebookとChainerで楽々Deep LearningJun-ya Norimatsu
 
TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門tak9029
 
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~Yasutomo Kawanishi
 
Chainer/CuPy v5 and Future (Japanese)
Chainer/CuPy v5 and Future (Japanese)Chainer/CuPy v5 and Future (Japanese)
Chainer/CuPy v5 and Future (Japanese)Seiya Tokui
 

Was ist angesagt? (20)

ディープラーニングフレームワーク とChainerの実装
ディープラーニングフレームワーク とChainerの実装ディープラーニングフレームワーク とChainerの実装
ディープラーニングフレームワーク とChainerの実装
 
Chainer v1.6からv1.7の新機能
Chainer v1.6からv1.7の新機能Chainer v1.6からv1.7の新機能
Chainer v1.6からv1.7の新機能
 
2013.07.15 はじパタlt scikit-learnで始める機械学習
2013.07.15 はじパタlt scikit-learnで始める機械学習2013.07.15 はじパタlt scikit-learnで始める機械学習
2013.07.15 はじパタlt scikit-learnで始める機械学習
 
17ゼロから作るディープラーニング2章パーセプトロン
17ゼロから作るディープラーニング2章パーセプトロン17ゼロから作るディープラーニング2章パーセプトロン
17ゼロから作るディープラーニング2章パーセプトロン
 
mxnetで頑張る深層学習
mxnetで頑張る深層学習mxnetで頑張る深層学習
mxnetで頑張る深層学習
 
PythonによるDeep Learningの実装
PythonによるDeep Learningの実装PythonによるDeep Learningの実装
PythonによるDeep Learningの実装
 
TensorFlowとCNTK
TensorFlowとCNTKTensorFlowとCNTK
TensorFlowとCNTK
 
深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開深層学習フレームワーク Chainer の開発と今後の展開
深層学習フレームワーク Chainer の開発と今後の展開
 
機械学習を用いた予測モデル構築・評価
機械学習を用いた予測モデル構築・評価機械学習を用いた予測モデル構築・評価
機械学習を用いた予測モデル構築・評価
 
Chainerの使い方と自然言語処理への応用
Chainerの使い方と自然言語処理への応用Chainerの使い方と自然言語処理への応用
Chainerの使い方と自然言語処理への応用
 
Androidで動かすはじめてのDeepLearning
Androidで動かすはじめてのDeepLearningAndroidで動かすはじめてのDeepLearning
Androidで動かすはじめてのDeepLearning
 
Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015Chainerチュートリアル -v1.5向け- ViEW2015
Chainerチュートリアル -v1.5向け- ViEW2015
 
科学技術計算関連Pythonパッケージの概要
科学技術計算関連Pythonパッケージの概要科学技術計算関連Pythonパッケージの概要
科学技術計算関連Pythonパッケージの概要
 
Pythonによる機械学習入門 ~Deep Learningに挑戦~
Pythonによる機械学習入門 ~Deep Learningに挑戦~Pythonによる機械学習入門 ~Deep Learningに挑戦~
Pythonによる機械学習入門 ~Deep Learningに挑戦~
 
Practical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architecturesPractical recommendations for gradient-based training of deep architectures
Practical recommendations for gradient-based training of deep architectures
 
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
 
Jupyter NotebookとChainerで楽々Deep Learning
Jupyter NotebookとChainerで楽々Deep LearningJupyter NotebookとChainerで楽々Deep Learning
Jupyter NotebookとChainerで楽々Deep Learning
 
TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門TensorFlowをもう少し詳しく入門
TensorFlowをもう少し詳しく入門
 
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
 
Chainer/CuPy v5 and Future (Japanese)
Chainer/CuPy v5 and Future (Japanese)Chainer/CuPy v5 and Future (Japanese)
Chainer/CuPy v5 and Future (Japanese)
 

Ähnlich wie AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」

Machine learning microservice_management
Machine learning microservice_managementMachine learning microservice_management
Machine learning microservice_managementyusuke shibui
 
TensorFlow Operation 作ってみた
TensorFlow Operation 作ってみたTensorFlow Operation 作ってみた
TensorFlow Operation 作ってみたTakuya Sakamoto
 
LIFULL HOME'S「かざして検索」リリースの裏側
LIFULL HOME'S「かざして検索」リリースの裏側LIFULL HOME'S「かざして検索」リリースの裏側
LIFULL HOME'S「かざして検索」リリースの裏側Takuro Hanawa
 
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkIoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkTakanori Suzuki
 
HTML5 conference 2013
HTML5 conference 2013HTML5 conference 2013
HTML5 conference 2013Takuo Kihira
 
実験心理学者のためのPython
実験心理学者のためのPython実験心理学者のためのPython
実験心理学者のためのPythonMasataka Miyoshi
 
15分でざっくり分かるScala入門
15分でざっくり分かるScala入門15分でざっくり分かるScala入門
15分でざっくり分かるScala入門SatoYu1ro
 
Azure Machine Learning Services 概要 - 2019年3月版
Azure Machine Learning Services 概要 - 2019年3月版Azure Machine Learning Services 概要 - 2019年3月版
Azure Machine Learning Services 概要 - 2019年3月版Daiyu Hatakeyama
 
機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)
機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)
機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)Yaboo Oyabu
 
TensroFlow XLA : JIT編 (r1.3版)
TensroFlow XLA : JIT編 (r1.3版)TensroFlow XLA : JIT編 (r1.3版)
TensroFlow XLA : JIT編 (r1.3版)Mr. Vengineer
 
Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!KAIKenzo
 
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...de:code 2017
 
Getting Started with Deep Learning using Scala
Getting Started with Deep Learning using ScalaGetting Started with Deep Learning using Scala
Getting Started with Deep Learning using ScalaTaisuke Oe
 
Twitterのリアルタイム分散処理システム「Storm」入門 demo
Twitterのリアルタイム分散処理システム「Storm」入門 demoTwitterのリアルタイム分散処理システム「Storm」入門 demo
Twitterのリアルタイム分散処理システム「Storm」入門 demoAdvancedTechNight
 
20120405 setsunaセミナー
20120405 setsunaセミナー20120405 setsunaセミナー
20120405 setsunaセミナーTakahiro Iwase
 
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
 ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイドEtsuji Nakai
 
なにわテック20180127
なにわテック20180127なにわテック20180127
なにわテック20180127Natsutani Minoru
 

Ähnlich wie AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」 (20)

2023_freshman
2023_freshman2023_freshman
2023_freshman
 
Machine learning microservice_management
Machine learning microservice_managementMachine learning microservice_management
Machine learning microservice_management
 
TensorFlow Operation 作ってみた
TensorFlow Operation 作ってみたTensorFlow Operation 作ってみた
TensorFlow Operation 作ってみた
 
LIFULL HOME'S「かざして検索」リリースの裏側
LIFULL HOME'S「かざして検索」リリースの裏側LIFULL HOME'S「かざして検索」リリースの裏側
LIFULL HOME'S「かざして検索」リリースの裏側
 
IoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache FlinkIoT時代におけるストリームデータ処理と急成長の Apache Flink
IoT時代におけるストリームデータ処理と急成長の Apache Flink
 
HTML5 conference 2013
HTML5 conference 2013HTML5 conference 2013
HTML5 conference 2013
 
実験心理学者のためのPython
実験心理学者のためのPython実験心理学者のためのPython
実験心理学者のためのPython
 
15分でざっくり分かるScala入門
15分でざっくり分かるScala入門15分でざっくり分かるScala入門
15分でざっくり分かるScala入門
 
Miyazaki.js vol.2
Miyazaki.js vol.2Miyazaki.js vol.2
Miyazaki.js vol.2
 
Azure Machine Learning Services 概要 - 2019年3月版
Azure Machine Learning Services 概要 - 2019年3月版Azure Machine Learning Services 概要 - 2019年3月版
Azure Machine Learning Services 概要 - 2019年3月版
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 
機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)
機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)
機械学習プロジェクトにおける Cloud AI Platform の使い方 (2018-11-19)
 
TensroFlow XLA : JIT編 (r1.3版)
TensroFlow XLA : JIT編 (r1.3版)TensroFlow XLA : JIT編 (r1.3版)
TensroFlow XLA : JIT編 (r1.3版)
 
Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!Enjoy handwritten digits recognition AI !!
Enjoy handwritten digits recognition AI !!
 
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
[AI05] 目指せ、最先端 AI 技術の実活用!Deep Learning フレームワーク 「Microsoft Cognitive Toolkit 」...
 
Getting Started with Deep Learning using Scala
Getting Started with Deep Learning using ScalaGetting Started with Deep Learning using Scala
Getting Started with Deep Learning using Scala
 
Twitterのリアルタイム分散処理システム「Storm」入門 demo
Twitterのリアルタイム分散処理システム「Storm」入門 demoTwitterのリアルタイム分散処理システム「Storm」入門 demo
Twitterのリアルタイム分散処理システム「Storm」入門 demo
 
20120405 setsunaセミナー
20120405 setsunaセミナー20120405 setsunaセミナー
20120405 setsunaセミナー
 
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
 ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
ソフトウェアエンジニアのための「機械学習理論」入門・ハンズオン演習ガイド
 
なにわテック20180127
なにわテック20180127なにわテック20180127
なにわテック20180127
 

Mehr von fukuoka.ex

【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」fukuoka.ex
 
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」fukuoka.ex
 
Elixir入門「第5回:Visualixirで見るマルチプロセス」
Elixir入門「第5回:Visualixirで見るマルチプロセス」Elixir入門「第5回:Visualixirで見るマルチプロセス」
Elixir入門「第5回:Visualixirで見るマルチプロセス」fukuoka.ex
 
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」fukuoka.ex
 
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」fukuoka.ex
 
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」fukuoka.ex
 
AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」fukuoka.ex
 
やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介fukuoka.ex
 
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」fukuoka.ex
 
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」fukuoka.ex
 
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版ありますElixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版ありますfukuoka.ex
 
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますfukuoka.ex
 

Mehr von fukuoka.ex (12)

【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
【LT版】Elixir入門「第7回:Python/KerasをElixirから繋いでアレコレする」
 
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
Elixir入門「第3回:Phoenix 1.3で高速webアプリ & REST APIアプリをサクッと書いてみる」
 
Elixir入門「第5回:Visualixirで見るマルチプロセス」
Elixir入門「第5回:Visualixirで見るマルチプロセス」Elixir入門「第5回:Visualixirで見るマルチプロセス」
Elixir入門「第5回:Visualixirで見るマルチプロセス」
 
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」
 
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
Elixir入門「第6回:Elixirはtry…catchを書かない~障害対応のパラダイムシフト~」
 
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
重力プログラミング入門「第1回:地球の重力下で人工衛星を公転軌道に乗せる」
 
AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」AI入門「第1回:AIの歴史とTensorFlow」
AI入門「第1回:AIの歴史とTensorFlow」
 
やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介やや関数型を意識した風Elixir/Phoenixご紹介
やや関数型を意識した風Elixir/Phoenixご紹介
 
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」
AI入門「第2回:Scala/Spark/Mahoutでレコメンドエンジンを作る」
 
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
Elixir入門「第2回:PC間で通信するアプリをサクっと書いてみる」
 
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版ありますElixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります
Elixir入門「第1回:パターンマッチ&パイプでJSONパースアプリをサクっと書いてみる」【旧版】※新版あります
 
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版ありますElixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
Elixir入門「第3回:Phoenix 1.2で高速Webアプリ & REST APIをサクッと書いてみる」【旧版】※新版あります
 

AI入門「第4回:ディープラーニングの中身を覗いて、育ちを観察する」