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

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

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

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. 7 ディープラーニングの誕生 • 「ニューラルネットワーク」の考え方は古くからあったが、多くの研究者は、 「アイデアとしては面白いが実用化は難しい」と考えていた • 2012 年に Google の研究者が「階層の深いニューラルネットワーク」を用い

    て、 YouTube のデータから「猫」(などの物体)を識別することに成功 • これをきっかけにして、「階層の深いニューラルネットワークを用いた機械学 習」=「ディープラーニング」の実用化がはじまる 7
  5. 15 機械学習あり学習の例 • 分類アルゴリズム(Classification) ◦ 複数のクラスに分類された既存のデータを用いて、新しいデータがどのク ラスに属するかを予想する ◦ スパムメールの判定、画像の分類など •

    回帰分析(Regression) ◦ 具体的な数値を予測する ◦ 実際には、データの背後にある「関数」を見つけ出して、それを元に予測 値を計算する 15
  6. 21 • 学習用データ ◦ (x, y) 平面上の N 個の点 ◦

    ◦ と × の 2 種類があり、    の正 解ラベルが与えられている 線形判別法の例題 • 解くべき問題 ◦ 平面上に直線を引いて、◦ と × のデータを判別する ◦ すべてのデータに 100% 正解を与えることはできないので、何らかの意味で ベストな直線を決定する 21
  7. 23 • 平面上の点 (x, y) に対して、その点の データが ◦ である確率    を計 算する(境界線上は確率

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

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

    は 0 から 1 に 滑らかに増加 • 一次関数    の値をシグモイド関 数に代入すると、確率    に変換 できる 確率 P(x, y) への変換 25
  10. 27 • 確率    を計算するニューラルネットワークを定義 Keras による実装例 model = models.Sequential() model.add(layers.Dense(1, activation='sigmoid',

    input_shape=(2,), name='logistic_regression')) 活性化関数 活性化関数として シグモイド関数を使用 27
  11. 30 おまけ:線形多項分類器への応用 • 同じ考え方で、 ◦ 「平面上の点」以外のデータ ◦ 3 種類以上のクラスを持つデータ を分類することも可能

    • 複数の一次関数を用いて、複数の境界線を作り、 一次関数に含まれるパラメーターをチューニング する ⇨「線形多項分類器」と呼ばれるモデル 三次元空間の点を分類する例 30
  12. 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