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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Etsuji Nakai
January 16, 2022
Technology
1
530
機械学習&ディープラーニング入門
Etsuji Nakai
January 16, 2022
Tweet
Share
More Decks by Etsuji Nakai
See All by Etsuji Nakai
Agent Development Kit によるエージェント開発入門
enakai00
23
8.3k
GDG Tokyo 生成 AI 論文をわいわい読む会
enakai00
1
640
Lecture course on Microservices : Part 1
enakai00
1
3.7k
Lecture course on Microservices : Part 2
enakai00
2
3.7k
Lecture course on Microservices : Part 3
enakai00
1
3.6k
Lecture course on Microservices : Part 4
enakai00
1
3.6k
JAX / Flax 入門
enakai00
1
970
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.2k
大規模言語モデルを支える分散学習インフラ Pathways
enakai00
3
550
Other Decks in Technology
See All in Technology
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
130
AIが実装する時代、人間は仕様と検証を設計する
gotalab555
1
140
コンテナセキュリティの最新事情 ~ 2026年版 ~
kyohmizu
6
1.3k
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
3
220
(技術的には)社内システムもOKなブラウザエージェントを作ってみた!
har1101
0
140
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
180
Tebiki Engineering Team Deck
tebiki
0
24k
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
270
AIエージェントに必要なのはデータではなく文脈だった/ai-agent-context-graph-mybest
jonnojun
1
240
Cloud Runでコロプラが挑む 生成AI×ゲーム『神魔狩りのツクヨミ』の裏側
colopl
0
130
Cosmos World Foundation Model Platform for Physical AI
takmin
0
970
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
12
5.6k
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
331
21k
Side Projects
sachag
455
43k
Designing for Performance
lara
610
70k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
340
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
230
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
150
Information Architects: The Missing Link in Design Systems
soysaucechin
0
780
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
350
The Curse of the Amulet
leimatthew05
1
8.7k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
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.