Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
機械学習入門
Search
tasotaku
May 22, 2023
Programming
0
390
機械学習入門
RICORA Programming Team で使用したスライド
tasotaku
May 22, 2023
Tweet
Share
More Decks by tasotaku
See All by tasotaku
DQNによるポーカーの強化学習/Reinforcement Learning in Poker with DQN
tasotaku
0
320
オセロCPU/Othello CPU
tasotaku
0
91
オセロAI / OthelloAI
tasotaku
0
92
私、ChatGPTがChatGPTを解説するよ! / ChatGPT explains ChatGPT
tasotaku
0
440
AIが作る予想外な画像を考える / Consider the unexpected images that AI creates
tasotaku
0
300
Google Colaboratory でStable Diffusionの実装 / Implementation of Stable Diffusion at Google Colaboratory
tasotaku
0
350
Other Decks in Programming
See All in Programming
ある日突然あなたが管理しているサーバーにDDoSが来たらどうなるでしょう?知ってるようで何も知らなかったDDoS攻撃と対策 #phpcon.2024
akase244
2
430
競技プログラミングへのお誘い@阪大BOOSTセミナー
kotamanegi
0
360
PHPで学ぶプログラミングの教訓 / Lessons in Programming Learned through PHP
nrslib
4
400
Effective Signals in Angular 19+: Rules and Helpers
manfredsteyer
PRO
0
130
AWSのLambdaで PHPを動かす選択肢
rinchoku
2
310
見えないメモリを観測する: PHP 8.4 `pg_result_memory_size()` とSQL結果のメモリ管理
kentaroutakeda
0
740
선언형 UI에서의 상태관리
l2hyunwoo
0
200
Scalaから始めるOpenFeature入門 / Scalaわいわい勉強会 #4
arthur1
1
350
Go の GC の不得意な部分を克服したい
taiyow
3
850
20年もののレガシープロダクトに 0からPHPStanを入れるまで / phpcon2024
hirobe1999
0
840
17年周年のWebアプリケーションにTanStack Queryを導入する / Implementing TanStack Query in a 17th Anniversary Web Application
saitolume
0
250
Stackless и stackful? Корутины и асинхронность в Go
lamodatech
0
970
Featured
See All Featured
How to train your dragon (web standard)
notwaldorf
88
5.7k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Writing Fast Ruby
sferik
628
61k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Mobile First: as difficult as doing things right
swwweet
222
9k
How GitHub (no longer) Works
holman
311
140k
Scaling GitHub
holman
459
140k
Code Reviewing Like a Champion
maltzj
521
39k
Building Applications with DynamoDB
mza
91
6.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
460
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
111
49k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Transcript
機械学習入門 2023/05/19 1
目的 機械学習に興味があるけど良く知らないという方向けの話です。 そのため、長い部分や理論的な部分は省略して、広く浅く紹介します。 機械学習とは何なのか、何をするのに向いているのかを知って、興味があるか検討に 役立てて下さい。 「これからガッツリ勉強したい!」という方には向かないかも。 2023/05/19 2
機械学習とは データから自動で学習する技術 2023/05/19 3
深層学習 def predict(self, x): W1, W2 = self.params['W1'], self.params['W2'] b1,
b2 = self.params['b1'], self.params['b2'] a1 = np.dot(x, W1) + b1 z1 = sigmoid(a1) a2 = np.dot(z1, W2) + b2 y = softmax(a2) return y 上のコードのように、計算によって出来ている。 Wは重み、bはバイアス np.dotは行列の積 sigmoidはシグモイド関数 ( sigmoid(x) = 1 / 1 + exp(-x) ) 2023/05/19 4
深層学習 a1 = np.dot(x, W1) + b1 # 第一層 z1
= sigmoid(a1) a2 = np.dot(z1, W2) + b2 # 第二層 y = softmax(a2) 下の図のように表される。(引用: https://jp.mathworks.com/discovery/deep- learning.html) 2023/05/19 5
どうやって学習するのか 誤差を関数で表し、微分を使って誤差が最小になるようにする。 2023/05/19 6
勾配法 引用(https://rightcode.co.jp/blog/information-technology/back-propagation- algorithm-implementation) 微分によって傾き(勾配)を求め、パラメータをどっちにどれだけ進めれば誤差が少なく なるか学習する 2023/05/19 7
誤差逆伝播法 誤差を逆方向からフィードバックする手法 引用(https://rightcode.co.jp/blog/information-technology/back-propagation- algorithm-implementation) 2023/05/19 8
機械学習に扱えるもの 深層学習は数式によって成り立っている事を説明しました。 極端に言えば、数字に変換できる物なら大抵のものが取り込めます。 2023/05/19 9
データ 赤ワインの属性と品質のデータ 引用(https://www.statlab.co.jp/seminar/redwine01.html) 各項目がすでに数値なので、そのまま取り出すことができる。 2023/05/19 10
画像 色は光の三原色の強さで表せる。 0~255段階とすることで、画像を配 列にできる 2023/05/19 11
言語 単語の意味は周囲の単語によって形成される(分布仮説) I say hello You say goodbye IとYouはどちらもsayの前だから似た意味? helloとgoodbyeはどちらもsayの後ろだから似た意味?
単語をベクトルで表現する 各単語の類似度(数値)をベクトルで表現する。 似た意味の単語はベクトル空間上で近い位置にある。 2023/05/19 12
ボードゲーム 左のマップは以下のように配列にできる [[-1, None,0, 1 ], [0, 0, 0, None],
[None,0, None,0 ], [0, 0, 0, 0 ]] 移動したら得られる点を表す。家のマスに移動したら1 点、炎のマスは1点減点、それ以外は0点。 引用【入門】Q学習の解説とpythonでの実装 〜シンプル な迷路問題を例に〜 2023/05/19 13
モデル作成の例 1. データセットの用意 2. 前準備 3. 学習と予測 2023/05/19 14
データセットの用意 質の良いデータを大量に用意する事は最も重要なことの一つです。 サイトからダウンロードする Kaggle や Dataset Search などで探せる ネット上でかき集める 画像投稿サイトで集めたり
自作 大量に用意する必要があるので大変。 外注 企業がやるやつ 2023/05/19 15
前準備 フレームワーク選び データの整形 データの分割 データローダーにかける ハイパーパラメータ設定 などなど 2023/05/19 16
学習と予測 学習が完了するまで待ち。 データの数やフレームワーク・ライブラリによって時間は変わる。 ノーパソだと数時間かかるものも珍しくない。 2023/05/19 17
シンプルな例で体験 Google Colab を使用 https://colab.research.google.com/ Python環境がすでに整っているのですぐに始められる。 GPUが使える。 無料で使えるが使用制限あり。 ソースコードとデータセットはgithubに用意してあるので、CodeからDownload ZIP
https://github.com/tasotaku/Machine_Learning_lec 2023/05/19 18
シンプルな例で体験 1. アップロードを選択 2. ipynbファイルをアップロード 3. ファイルを選択 4. csvファイルをアップロード 5.
上から実行 2023/05/19 19
強化学習 先ほど紹介したのは教師あり学習 強化学習とはエージェントと環境が相互にやり取りをす ることで学習する。 家のマスに移動するという行動をしたら、1点という報 酬をあたえる。こういった探索を行い、最も良い行動を 求める。 強化学習の場合、データセットは必要ない。代わりに環 境や報酬が必要。 2023/05/19
20
Deep Learninig 実用例 物体検知 画像生成 自動翻訳 チャットボット ボードゲーム ロボット制御 2023/05/19
21
物体検知 画像から物体の位置と種類を表示 引用 (https://pjreddie.com/darknet/yolo/) 2023/05/19 22
画像生成 引用(https://huggingface.co/stabilityai/stable-diffusion-2) テキストや文章から新たな画像を生成 stable-diffusionなど 2023/05/19 23
自動翻訳 翻訳してくれる。英語課題のお供。 Google翻訳、DeepLなど。 2023/05/19 24
チャットボット 人と自然な対話が可能。分かりやすく教えてもらったり、ソースコード書いてもらっ たりできる。 ChatGPTなど 2023/05/19 25
ボードゲーム チェスやオセロ、エアーホッケー、アクションゲームなど、人間と同じ強さで戦え る。 ロボット制御 アームで掴む、犬型ロボットが歩くなど。ロボットの行動はデータにしづらいので、 強化学習になる。物をつかめたらプラスの報酬を与えるなど。 2023/05/19 26
機械学習は万能か? 先週のatcoder A問題 https://atcoder.jp/contests/abc301/tasks/abc301_a 入力が整数と文字列、出力が文字。一応、機械学習で扱えるが... データセットを用意しなければならない。 手を抜くと精度が下がる。 前準備がいる。 場合によっては学習に時間がかかる。 正答率は100%にならない可能性がある。
手間がかかる上に不完全。普通に数行コードを書いた方がいい! 2023/05/19 27
おすすめの本 昨今のAIブームのおかげで機械学習の情報は沢山ある。 ネットで調べるなり本を借りるか買うかすれば困らないと思う。 ゼロから作るdeep learning 説明が丁寧で読みやすい。序盤にPythonの解説があるが基礎知識はあった方がいい。 AIの理論的な部分がメイン、実装するにはこの本だけでは不十分。(個人の意見) 2023/05/19 28
おわり 広ーく話させてもらいました。理論的な部分はほぼ飛ばしているので、本来は数学っ ぽい話があります。 機械学習の理解に役立ったのならうれしいです。 2023/05/19 29