RICORA Programming Team で使用したスライド
機械学習入門2023/05/191
View Slide
目的機械学習に興味があるけど良く知らないという方向けの話です。そのため、長い部分や理論的な部分は省略して、広く浅く紹介します。機械学習とは何なのか、何をするのに向いているのかを知って、興味があるか検討に役立てて下さい。「これからガッツリ勉強したい!」という方には向かないかも。2023/05/192
機械学習とはデータから自動で学習する技術2023/05/193
深層学習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) + b1z1 = sigmoid(a1)a2 = np.dot(z1, W2) + b2y = softmax(a2)return y上のコードのように、計算によって出来ている。Wは重み、bはバイアスnp.dotは行列の積sigmoidはシグモイド関数 ( sigmoid(x) = 1 / 1 + exp(-x) )2023/05/194
深層学習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/195
どうやって学習するのか誤差を関数で表し、微分を使って誤差が最小になるようにする。2023/05/196
勾配法引用(https://rightcode.co.jp/blog/information-technology/back-propagation-algorithm-implementation)微分によって傾き(勾配)を求め、パラメータをどっちにどれだけ進めれば誤差が少なくなるか学習する2023/05/197
誤差逆伝播法誤差を逆方向からフィードバックする手法引用(https://rightcode.co.jp/blog/information-technology/back-propagation-algorithm-implementation)2023/05/198
機械学習に扱えるもの深層学習は数式によって成り立っている事を説明しました。極端に言えば、数字に変換できる物なら大抵のものが取り込めます。2023/05/199
データ赤ワインの属性と品質のデータ引用(https://www.statlab.co.jp/seminar/redwine01.html)各項目がすでに数値なので、そのまま取り出すことができる。2023/05/1910
画像色は光の三原色の強さで表せる。0~255段階とすることで、画像を配列にできる2023/05/1911
言語単語の意味は周囲の単語によって形成される(分布仮説)I say helloYou say goodbyeIとYouはどちらもsayの前だから似た意味?helloとgoodbyeはどちらもsayの後ろだから似た意味?単語をベクトルで表現する各単語の類似度(数値)をベクトルで表現する。似た意味の単語はベクトル空間上で近い位置にある。2023/05/1912
ボードゲーム左のマップは以下のように配列にできる[[-1, None,0, 1 ],[0, 0, 0, None],[None,0, None,0 ],[0, 0, 0, 0 ]]移動したら得られる点を表す。家のマスに移動したら1点、炎のマスは1点減点、それ以外は0点。引用【入門】Q学習の解説とpythonでの実装 〜シンプルな迷路問題を例に〜2023/05/1913
モデル作成の例1. データセットの用意2. 前準備3. 学習と予測2023/05/1914
データセットの用意質の良いデータを大量に用意する事は最も重要なことの一つです。サイトからダウンロードするKaggle や Dataset Search などで探せるネット上でかき集める画像投稿サイトで集めたり自作大量に用意する必要があるので大変。外注企業がやるやつ2023/05/1915
前準備フレームワーク選びデータの整形データの分割データローダーにかけるハイパーパラメータ設定などなど2023/05/1916
学習と予測学習が完了するまで待ち。データの数やフレームワーク・ライブラリによって時間は変わる。ノーパソだと数時間かかるものも珍しくない。2023/05/1917
シンプルな例で体験Google Colab を使用https://colab.research.google.com/Python環境がすでに整っているのですぐに始められる。GPUが使える。無料で使えるが使用制限あり。ソースコードとデータセットはgithubに用意してあるので、CodeからDownload ZIPhttps://github.com/tasotaku/Machine_Learning_lec2023/05/1918
シンプルな例で体験1. アップロードを選択2. ipynbファイルをアップロード3. ファイルを選択4. csvファイルをアップロード5. 上から実行2023/05/1919
強化学習先ほど紹介したのは教師あり学習強化学習とはエージェントと環境が相互にやり取りをすることで学習する。家のマスに移動するという行動をしたら、1点という報酬をあたえる。こういった探索を行い、最も良い行動を求める。強化学習の場合、データセットは必要ない。代わりに環境や報酬が必要。2023/05/1920
Deep Learninig 実用例物体検知画像生成自動翻訳チャットボットボードゲームロボット制御2023/05/1921
物体検知画像から物体の位置と種類を表示引用(https://pjreddie.com/darknet/yolo/)2023/05/1922
画像生成引用(https://huggingface.co/stabilityai/stable-diffusion-2)テキストや文章から新たな画像を生成stable-diffusionなど2023/05/1923
自動翻訳翻訳してくれる。英語課題のお供。Google翻訳、DeepLなど。2023/05/1924
チャットボット人と自然な対話が可能。分かりやすく教えてもらったり、ソースコード書いてもらったりできる。ChatGPTなど2023/05/1925
ボードゲームチェスやオセロ、エアーホッケー、アクションゲームなど、人間と同じ強さで戦える。ロボット制御アームで掴む、犬型ロボットが歩くなど。ロボットの行動はデータにしづらいので、強化学習になる。物をつかめたらプラスの報酬を与えるなど。2023/05/1926
機械学習は万能か?先週のatcoder A問題https://atcoder.jp/contests/abc301/tasks/abc301_a入力が整数と文字列、出力が文字。一応、機械学習で扱えるが...データセットを用意しなければならない。手を抜くと精度が下がる。前準備がいる。場合によっては学習に時間がかかる。正答率は100%にならない可能性がある。手間がかかる上に不完全。普通に数行コードを書いた方がいい!2023/05/1927
おすすめの本昨今のAIブームのおかげで機械学習の情報は沢山ある。ネットで調べるなり本を借りるか買うかすれば困らないと思う。ゼロから作るdeep learning説明が丁寧で読みやすい。序盤にPythonの解説があるが基礎知識はあった方がいい。AIの理論的な部分がメイン、実装するにはこの本だけでは不十分。(個人の意見)2023/05/1928
おわり広ーく話させてもらいました。理論的な部分はほぼ飛ばしているので、本来は数学っぽい話があります。機械学習の理解に役立ったのならうれしいです。2023/05/1929