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
450
機械学習&ディープラーニング入門
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.3k
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
430
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
3.7k
大規模言語モデルを支える分散学習インフラ Pathways
enakai00
3
460
Python × 数学ブートキャンプガイド
enakai00
1
710
Riemann幾何学ユーザーのための情報幾何学入門
enakai00
0
360
Other Decks in Technology
See All in Technology
機械学習を「社会実装」するということ 2025年版 / Social Implementation of Machine Learning 2025 Version
moepy_stats
4
900
embedパッケージを深掘りする / Deep Dive into embed Package in Go
task4233
1
210
ドメイン駆動設計の実践により事業の成長スピードと保守性を両立するショッピングクーポン
lycorptech_jp
PRO
10
1.1k
AWSの生成AIサービス Amazon Bedrock入門!(2025年1月版)
minorun365
PRO
7
460
JAWS-UG20250116_iOSアプリエンジニアがAWSreInventに行ってきた(真面目編)
totokit4
0
140
OPENLOGI Company Profile
hr01
0
58k
SpiderPlus & Co. エンジニア向け会社紹介資料
spiderplus_cb
0
880
Formal Development of Operating Systems in Rust
riru
1
420
WantedlyでのKotlin Multiplatformの導入と課題 / Kotlin Multiplatform Implementation and Challenges at Wantedly
kubode
0
240
iPadOS18でフローティングタブバーを解除してみた
sansantech
PRO
1
130
2025年の挑戦 コーポレートエンジニアの技術広報/techpr5
nishiuma
0
140
いま現場PMのあなたが、 経営と向き合うPMになるために 必要なこと、腹をくくること
hiro93n
9
7.4k
Featured
See All Featured
Why You Should Never Use an ORM
jnunemaker
PRO
54
9.1k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.9k
Writing Fast Ruby
sferik
628
61k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
The Language of Interfaces
destraynor
155
24k
BBQ
matthewcrist
85
9.4k
How to Ace a Technical Interview
jacobian
276
23k
How to train your dragon (web standard)
notwaldorf
89
5.8k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Fireside Chat
paigeccino
34
3.1k
Raft: Consensus for Rubyists
vanstee
137
6.7k
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.