Upgrade to Pro — share decks privately, control downloads, hide ads and more …

機械学習&ディープラーニング入門

 機械学習&ディープラーニング入門

Da467feb3ca0106d571915faedb714f2?s=128

Etsuji Nakai

January 16, 2022
Tweet

More Decks by Etsuji Nakai

Other Decks in Technology

Transcript

  1. 第1部 (入門編) 機械学習 & ディープラーニング入門 中井悦司 / Etsuji Nakai 2022/1/12 ver1.0

    ※ 第三者著作物を含むページを公開用に一部削除しています。
  2. 専門用語の手話表現 • 機械学習 (Machine Learning) • ディープラーニング(深層学習)(Deep Learning) • ニューラルネットワーク

    (Neural network) • 教師あり学習 / 教師なし学習 (Supervised / unsupervised learning) • 強化学習 (Reinforcement learning) • クラスタリング (Clustering) • 入力値 / 出力値 (Input / Output values)
  3. 専門用語の手話表現 • 変数 / パラメーター • 構造化データ:スプレッドシートなどに格納された数値データ (Structured data) •

    非構造化データ:写真、動画、テキスト文書などのデータ (Unstructured data) • 分類アルゴリズム (Classification algorithm) • 回帰分析 (Regression analysis) • 確率 (Probability) • 予測 • グラフ (Chart / Graph)
  4. 4 機械学習とディープラーニングの基礎 4

  5. 5 AI/ディープラーニング/機械学習 AI:知性を持っているかのような機能を 提供する製品・サービスを実現 ディープラーニング:非構造化データに 高い予測性能を発揮する機械学習の一手法 機械学習:「過去のデータ」を基にして 「未知のデータ」に対する予測を行う技術 5

  6. 6 機械学習の基本 • 過去データを収集して、データの特徴をアルゴリズムで分析する • 新しいデータの特徴と比較して、新しいデータについて予測する スパムメールを 収集する スパムメールの 特徴を分析する

    新しく届いたメールが 「スパムメールの特徴」を 持っているか判断する (*) 実際にはアルゴリズムを  使って自動分析する 6
  7. 7 ディープラーニングの誕生 • 「ニューラルネットワーク」の考え方は古くからあったが、多くの研究者は、 「アイデアとしては面白いが実用化は難しい」と考えていた • 2012 年に Google の研究者が「階層の深いニューラルネットワーク」を用い

    て、 YouTube のデータから「猫」(などの物体)を識別することに成功 • これをきっかけにして、「階層の深いニューラルネットワークを用いた機械学 習」=「ディープラーニング」の実用化がはじまる 7
  8. 8 ディープラーニングとニューラルネットワーク 8

  9. 9 ニューラルネットワークの仕組み Input ニューラルネットワークの本質は 「入力データから予測値を出力する関数」 “cat” コンピューターから見れば 各ピクセルの色を表す 数字の集まりにすぎない たくさんの関数で順番に

    計算を行って、結果を出力 レイヤー ノード それぞれのノードから 計算結果が出てくる 9
  10. 10 関数に含まれる「パラメーター」とは? 関数 パラメーター 入力値 出力値 パラメーター     の値を変えると、出力値が変化する。 10

  11. 11 「教師あり学習」の仕組み label, input 正解ラベルのついた「トレーニングデータ」 に対して、予測の正解率が向上するように 関数に含まれるパラメータをチューニング “cat” “dog” “car”

    “apple” OUTPUT 11
  12. 12 ディープラーニングが実用化された要因 • 学習アルゴリズムの研究 ◦ 膨大な数のパラメータを効率的に最適化する手法 • 学習データの蓄積 ◦ 膨大な数のパラメータを最適化するのに十分なデータ量

    • 計算リソース ◦ 並列計算技術、GPUを用いた計算技術の発展 12
  13. 13 機械学習アルゴリズムの種類 13

  14. 14 機械学習アルゴリズムの種類 • 教師あり学習 ◦ 「正解ラベル」を持ったデータを元に学習を行う方法 • 教師なし学習 ◦ 「正解ラベル」を持たないデータを分析する方法

    • 強化学習 ◦ 環境内を行動する「エージェント」が自分でデータを集めながら学習する 方法 14
  15. 15 機械学習あり学習の例 • 分類アルゴリズム(Classification) ◦ 複数のクラスに分類された既存のデータを用いて、新しいデータがどのク ラスに属するかを予想する ◦ スパムメールの判定、画像の分類など •

    回帰分析(Regression) ◦ 具体的な数値を予測する ◦ 実際には、データの背後にある「関数」を見つけ出して、それを元に予測 値を計算する 15
  16. 16 回帰分析の例 • 広告宣伝費と売上(宣伝効果)の関係につい て、過去の実績をプロット • これらの背後にある関数(この例では直線) を予測 • 次回の広告宣伝費を決める際の参考になる

    16
  17. 17 分類アルゴリズムの例 • 画像分類など ◦ この後の第2部で詳しく説明します! 17

  18. 第2部 (中級編) 分類アルゴリズムの基礎

  19. 19 • パラメーターを含む関数を用意する • 学習データを用意した関数に入力して、その出力値(予測結果)が「正解ラベ ル」にできるだけ一致するようにパラメーターの値を調整する • 線形判別法(分類アルゴリズムの中で最もシンプルなアルゴリズム) ◦ 予測に用いる関数として、一次関数(直線)を使用する

    ◦ パラメーターの数が少ないので、学習処理(パラメーターの調整)が簡単 分類アルゴリズムの仕組み 考え方はニューラル ネットワークと同じ 19
  20. 20 (復習)ニューラルネットワークの仕組み Input ニューラルネットワークの本質は 「入力データから予測値を出力する関数」 “cat” コンピューターから見れば 各ピクセルの色を表す 数字の集まりにすぎない たくさんの関数で順番に

    計算を行って、結果を出力 レイヤー ノード それぞれのノードから 計算結果が出てくる 20
  21. 21 • 学習用データ ◦ (x, y) 平面上の N 個の点 ◦

    ◦ と × の 2 種類があり、    の正 解ラベルが与えられている 線形判別法の例題 • 解くべき問題 ◦ 平面上に直線を引いて、◦ と × のデータを判別する ◦ すべてのデータに 100% 正解を与えることはできないので、何らかの意味で ベストな直線を決定する 21
  22. 22 • 一次関数を用意する • 次の条件を満たす点を集めると直線に なる 直線の表し方 • パラメーター     の値を変えると、直線の位置・方向が変化するので、◦ と

    × を(できるだけ)適切に分割できるようにパラメーターの値を決定する 22
  23. 23 • 平面上の点 (x, y) に対して、その点の データが ◦ である確率    を計 算する(境界線上は確率

    0.5) ロジスティック回帰の考え方 • この確率 P を用いて、パラメーターをチューニングする ◦ 正解が ◦ のデータ ⇨ P が大きくなるように調整 ◦ 正解が × のデータ ⇨ P が小さくなるように調整 実際には、この後で説明する 「バイナリー・クロスエントロピー」 を使ってチューニングする 23
  24. 24 • 直線上の点は      を満たす • 直線から離れていくと、   の値 は、増加/減少する • つまり、    の値が大きいほど、 ◦

    である確率    は大きくなる と考えられる 一次関数 f(x, y) の特徴 の場合 ◦である確率:大 ◦である確率:小 24
  25. 25 • シグモイド関数 ◦ 入力値 a が   から   に変化 すると出力値  

    は 0 から 1 に 滑らかに増加 • 一次関数    の値をシグモイド関 数に代入すると、確率    に変換 できる 確率 P(x, y) への変換 25
  26. 26 • 下記の E(バイナリー・クロスエントロピー)が最小になるようにパラメー ター     を決定すると、適切な境界線が得られる • 詳しい説明は、書籍(機械学習理論入門)を 参照してください m(_ _)m

    バイナリー・クロスエントロピーの定義 26
  27. 27 • 確率    を計算するニューラルネットワークを定義 Keras による実装例 model = models.Sequential() model.add(layers.Dense(1, activation='sigmoid',

    input_shape=(2,), name='logistic_regression')) 活性化関数 活性化関数として シグモイド関数を使用 27
  28. 28 • バイナリー・クロスエントロピーを最小化するように指定 • 学習データを与えて、学習処理を実行 Keras による実装例 model.compile(loss='binary_crossentropy') model.fit(train_x, train_t,

    batch_size=len(train_x), epochs=5000, verbose=0) 28
  29. 29 Keras による実装例 https://gist.github.com/enakai00/f31aa0e553ca729359768c740487a7d4 を押すと、Colab でノートブックを開いて実行することができます。 29

  30. 30 おまけ:線形多項分類器への応用 • 同じ考え方で、 ◦ 「平面上の点」以外のデータ ◦ 3 種類以上のクラスを持つデータ を分類することも可能

    • 複数の一次関数を用いて、複数の境界線を作り、 一次関数に含まれるパラメーターをチューニング する ⇨「線形多項分類器」と呼ばれるモデル 三次元空間の点を分類する例 30
  31. 31 おまけ:線形多項分類器への応用 • 例:画像分類器 ◦ 28x28ピクセルのグレイスケール画像は、各ピク セルの値を一列にならべると、784次元空間の点 とみなすことができる ◦ 大量の画像データを784次元空間にばらまくと、

    類似画像は互いに近くに集まると予想される ◦ 784次元空間を10分割することで、0 〜 9 の数字 の画像が分類できる 「0」の領域 「1」の領域 31
  32. 32 画像データと「高次元空間の点」の対応 x y z (0.8, 1.5, 1.5) 3 次元空間の点は

    3 つの数値で表される (0, 0, 0, …., 0.3, 0.4, …) 28 x 28 = 784 ピクセルの画像 は、784 個の数値で表される 784次元空間の 1つの点に マッピングできる 32
  33. 33 Keras による実装例 正解例 不正解例 https://gist.github.com/enakai00/7a91296b6fca6ee1f90ff8cf362cdbf4 を押すと、Colab でノートブックを開いて実行することができます。 33

  34. Thank You.