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
Etsuji Nakai
January 16, 2022
Technology
1
440
機械学習&ディープラーニング入門
Etsuji Nakai
January 16, 2022
Tweet
Share
More Decks by Etsuji Nakai
See All by Etsuji Nakai
Lecture course on Microservices : Part 1
enakai00
1
3.2k
Lecture course on Microservices : Part 2
enakai00
1
3.2k
Lecture course on Microservices : Part 3
enakai00
1
3.2k
Lecture course on Microservices : Part 4
enakai00
1
3.2k
JAX / Flax 入門
enakai00
1
410
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
3.6k
大規模言語モデルを支える分散学習インフラ Pathways
enakai00
3
450
Python × 数学ブートキャンプガイド
enakai00
1
700
Riemann幾何学ユーザーのための情報幾何学入門
enakai00
0
350
Other Decks in Technology
See All in Technology
私なりのAIのご紹介 [2024年版]
qt_luigi
1
120
株式会社ログラス − エンジニア向け会社説明資料 / Loglass Comapany Deck for Engineer
loglass2019
3
32k
AIのコンプラは何故しんどい?
shujisado
1
190
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
280
統計データで2024年の クラウド・インフラ動向を眺める
ysknsid25
2
840
複雑性の高いオブジェクト編集に向き合う: プラガブルなReactフォーム設計
righttouch
PRO
0
110
継続的にアウトカムを生み出し ビジネスにつなげる、 戦略と運営に対するタイミーのQUEST(探求)
zigorou
0
530
re:Invent をおうちで楽しんでみた ~CloudWatch のオブザーバビリティ機能がスゴい!/ Enjoyed AWS re:Invent from Home and CloudWatch Observability Feature is Amazing!
yuj1osm
0
120
5分でわかるDuckDB
chanyou0311
10
3.2k
祝!Iceberg祭開幕!re:Invent 2024データレイク関連アップデート10分総ざらい
kniino
2
260
Opcodeを読んでいたら何故かphp-srcを読んでいた話
murashotaro
0
180
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
190
Featured
See All Featured
Designing for Performance
lara
604
68k
The Power of CSS Pseudo Elements
geoffreycrofte
73
5.4k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7k
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Facilitating Awesome Meetings
lara
50
6.1k
Rails Girls Zürich Keynote
gr2m
94
13k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Unsuck your backbone
ammeep
669
57k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
95
17k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.5k
Making Projects Easy
brettharned
116
5.9k
Transcript
第1部 (入門編) 機械学習 & ディープラーニング入門 中井悦司 / Etsuji Nakai 2022/1/12 ver1.0
※ 第三者著作物を含むページを公開用に一部削除しています。
専門用語の手話表現 • 機械学習 (Machine Learning) • ディープラーニング(深層学習)(Deep Learning) • ニューラルネットワーク
(Neural network) • 教師あり学習 / 教師なし学習 (Supervised / unsupervised learning) • 強化学習 (Reinforcement learning) • クラスタリング (Clustering) • 入力値 / 出力値 (Input / Output values)
専門用語の手話表現 • 変数 / パラメーター • 構造化データ:スプレッドシートなどに格納された数値データ (Structured data) •
非構造化データ:写真、動画、テキスト文書などのデータ (Unstructured data) • 分類アルゴリズム (Classification algorithm) • 回帰分析 (Regression analysis) • 確率 (Probability) • 予測 • グラフ (Chart / Graph)
4 機械学習とディープラーニングの基礎 4
5 AI/ディープラーニング/機械学習 AI:知性を持っているかのような機能を 提供する製品・サービスを実現 ディープラーニング:非構造化データに 高い予測性能を発揮する機械学習の一手法 機械学習:「過去のデータ」を基にして 「未知のデータ」に対する予測を行う技術 5
6 機械学習の基本 • 過去データを収集して、データの特徴をアルゴリズムで分析する • 新しいデータの特徴と比較して、新しいデータについて予測する スパムメールを 収集する スパムメールの 特徴を分析する
新しく届いたメールが 「スパムメールの特徴」を 持っているか判断する (*) 実際にはアルゴリズムを 使って自動分析する 6
7 ディープラーニングの誕生 • 「ニューラルネットワーク」の考え方は古くからあったが、多くの研究者は、 「アイデアとしては面白いが実用化は難しい」と考えていた • 2012 年に Google の研究者が「階層の深いニューラルネットワーク」を用い
て、 YouTube のデータから「猫」(などの物体)を識別することに成功 • これをきっかけにして、「階層の深いニューラルネットワークを用いた機械学 習」=「ディープラーニング」の実用化がはじまる 7
8 ディープラーニングとニューラルネットワーク 8
9 ニューラルネットワークの仕組み Input ニューラルネットワークの本質は 「入力データから予測値を出力する関数」 “cat” コンピューターから見れば 各ピクセルの色を表す 数字の集まりにすぎない たくさんの関数で順番に
計算を行って、結果を出力 レイヤー ノード それぞれのノードから 計算結果が出てくる 9
10 関数に含まれる「パラメーター」とは? 関数 パラメーター 入力値 出力値 パラメーター の値を変えると、出力値が変化する。 10
11 「教師あり学習」の仕組み label, input 正解ラベルのついた「トレーニングデータ」 に対して、予測の正解率が向上するように 関数に含まれるパラメータをチューニング “cat” “dog” “car”
“apple” OUTPUT 11
12 ディープラーニングが実用化された要因 • 学習アルゴリズムの研究 ◦ 膨大な数のパラメータを効率的に最適化する手法 • 学習データの蓄積 ◦ 膨大な数のパラメータを最適化するのに十分なデータ量
• 計算リソース ◦ 並列計算技術、GPUを用いた計算技術の発展 12
13 機械学習アルゴリズムの種類 13
14 機械学習アルゴリズムの種類 • 教師あり学習 ◦ 「正解ラベル」を持ったデータを元に学習を行う方法 • 教師なし学習 ◦ 「正解ラベル」を持たないデータを分析する方法
• 強化学習 ◦ 環境内を行動する「エージェント」が自分でデータを集めながら学習する 方法 14
15 機械学習あり学習の例 • 分類アルゴリズム(Classification) ◦ 複数のクラスに分類された既存のデータを用いて、新しいデータがどのク ラスに属するかを予想する ◦ スパムメールの判定、画像の分類など •
回帰分析(Regression) ◦ 具体的な数値を予測する ◦ 実際には、データの背後にある「関数」を見つけ出して、それを元に予測 値を計算する 15
16 回帰分析の例 • 広告宣伝費と売上(宣伝効果)の関係につい て、過去の実績をプロット • これらの背後にある関数(この例では直線) を予測 • 次回の広告宣伝費を決める際の参考になる
16
17 分類アルゴリズムの例 • 画像分類など ◦ この後の第2部で詳しく説明します! 17
第2部 (中級編) 分類アルゴリズムの基礎
19 • パラメーターを含む関数を用意する • 学習データを用意した関数に入力して、その出力値(予測結果)が「正解ラベ ル」にできるだけ一致するようにパラメーターの値を調整する • 線形判別法(分類アルゴリズムの中で最もシンプルなアルゴリズム) ◦ 予測に用いる関数として、一次関数(直線)を使用する
◦ パラメーターの数が少ないので、学習処理(パラメーターの調整)が簡単 分類アルゴリズムの仕組み 考え方はニューラル ネットワークと同じ 19
20 (復習)ニューラルネットワークの仕組み Input ニューラルネットワークの本質は 「入力データから予測値を出力する関数」 “cat” コンピューターから見れば 各ピクセルの色を表す 数字の集まりにすぎない たくさんの関数で順番に
計算を行って、結果を出力 レイヤー ノード それぞれのノードから 計算結果が出てくる 20
21 • 学習用データ ◦ (x, y) 平面上の N 個の点 ◦
◦ と × の 2 種類があり、 の正 解ラベルが与えられている 線形判別法の例題 • 解くべき問題 ◦ 平面上に直線を引いて、◦ と × のデータを判別する ◦ すべてのデータに 100% 正解を与えることはできないので、何らかの意味で ベストな直線を決定する 21
22 • 一次関数を用意する • 次の条件を満たす点を集めると直線に なる 直線の表し方 • パラメーター の値を変えると、直線の位置・方向が変化するので、◦ と
× を(できるだけ)適切に分割できるようにパラメーターの値を決定する 22
23 • 平面上の点 (x, y) に対して、その点の データが ◦ である確率 を計 算する(境界線上は確率
0.5) ロジスティック回帰の考え方 • この確率 P を用いて、パラメーターをチューニングする ◦ 正解が ◦ のデータ ⇨ P が大きくなるように調整 ◦ 正解が × のデータ ⇨ P が小さくなるように調整 実際には、この後で説明する 「バイナリー・クロスエントロピー」 を使ってチューニングする 23
24 • 直線上の点は を満たす • 直線から離れていくと、 の値 は、増加/減少する • つまり、 の値が大きいほど、 ◦
である確率 は大きくなる と考えられる 一次関数 f(x, y) の特徴 の場合 ◦である確率:大 ◦である確率:小 24
25 • シグモイド関数 ◦ 入力値 a が から に変化 すると出力値
は 0 から 1 に 滑らかに増加 • 一次関数 の値をシグモイド関 数に代入すると、確率 に変換 できる 確率 P(x, y) への変換 25
26 • 下記の E(バイナリー・クロスエントロピー)が最小になるようにパラメー ター を決定すると、適切な境界線が得られる • 詳しい説明は、書籍(機械学習理論入門)を 参照してください m(_ _)m
バイナリー・クロスエントロピーの定義 26
27 • 確率 を計算するニューラルネットワークを定義 Keras による実装例 model = models.Sequential() model.add(layers.Dense(1, activation='sigmoid',
input_shape=(2,), name='logistic_regression')) 活性化関数 活性化関数として シグモイド関数を使用 27
28 • バイナリー・クロスエントロピーを最小化するように指定 • 学習データを与えて、学習処理を実行 Keras による実装例 model.compile(loss='binary_crossentropy') model.fit(train_x, train_t,
batch_size=len(train_x), epochs=5000, verbose=0) 28
29 Keras による実装例 https://gist.github.com/enakai00/f31aa0e553ca729359768c740487a7d4 を押すと、Colab でノートブックを開いて実行することができます。 29
30 おまけ:線形多項分類器への応用 • 同じ考え方で、 ◦ 「平面上の点」以外のデータ ◦ 3 種類以上のクラスを持つデータ を分類することも可能
• 複数の一次関数を用いて、複数の境界線を作り、 一次関数に含まれるパラメーターをチューニング する ⇨「線形多項分類器」と呼ばれるモデル 三次元空間の点を分類する例 30
31 おまけ:線形多項分類器への応用 • 例:画像分類器 ◦ 28x28ピクセルのグレイスケール画像は、各ピク セルの値を一列にならべると、784次元空間の点 とみなすことができる ◦ 大量の画像データを784次元空間にばらまくと、
類似画像は互いに近くに集まると予想される ◦ 784次元空間を10分割することで、0 〜 9 の数字 の画像が分類できる 「0」の領域 「1」の領域 31
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 Keras による実装例 正解例 不正解例 https://gist.github.com/enakai00/7a91296b6fca6ee1f90ff8cf362cdbf4 を押すと、Colab でノートブックを開いて実行することができます。 33
Thank You.