2.7K Views
January 29, 23
スライド概要
トピックス:機械学習, 機械学習の仕組み, 学習, 検証, Iris データセット, 教師有り学習, 教師無し学習, 予測, クラスタリング, 分離, ディープラーニング, 人工知能
ディープラーニング(スライドとプログラム例,Python を使用)(全15回)
https://www.kkaneko.jp/ai/ae/index.html
金子邦彦研究室ホームページ
https://www.kkaneko.jp/index.html
金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko
2. 機械学習の基礎 (教師なし学習,教師あり学習) (ディープラーニング,Python を使用) (全15回) https://www.kkaneko.jp/cc/ae/index.html 金子邦彦 1
アウトライン 番号 2-1 2-2 2-3 2-4 2-5 項目 復習 機械学習の仕組み,学習と検証 Iris データセット 教師あり学習と教師なし学習 教師あり学習による予測(回帰,分類) 教師なし学習によるクラスタリング,分離 各自、資料を読み返したり、課題に取り組んだりも行う 2
機械学習 • 学習による上達の能力 • 訓練データを使用して,学習を行う 3
データサイエンス • データの正しい取り扱いと活用 • 統計,数学を基礎とする 4
ニューラルネットワークの種類 ① 自己符号化(オートエンコーダ) データを低次元の符号にマッピング 学習:事前に、データを与えて学習 ② 分類や予測 あるデータから別のデータを導く 学習:事前に、データと正解(分類結果,予 測結果)のペアを与えて学習 5
2-1. 機械学習の仕組み, 学習と検証 6
一般のプログラミング データ (入力) 入力 9 10 11 12 13 14 プログラム コンピュータ 処理結果 入力 9 10 11 12 13 14 処理結果 500 500 500 1000 1000 1000 あらゆる入力について 正しい処理結果が得られるように, プログラムを作成し,テストする 7
機械学習での予測 データ (入力) 入力 10 13 プログラム 予測結果 コンピュータ 入力 予測結果 10 500 13 1000 訓練データ 入力 9 11 12 14 正解 500 500 1000 1000 訓練データにより,プログラムが自動調整される ニューラルネットワークの重み, 決定木の形や分岐ルールなど 8
① 一般のプログラミング データ (入力) ・プログラムは人間が作成し, テストし,調整する. プログラム 処理結果 コンピュータ ② 機械学習での予測 ・学習による上達の能力 データ (入力) プログラム 訓練データ コンピュータ 予測結果 9
機械学習での汎化 訓練データ 入力 9 11 12 14 正解 500 500 1000 1000 汎化により,未知のデータ についても予測ができるよ うになる 訓練データの汎化 入力 7 8 9 10 11 12 13 14 15 16 予測結果 500 500 500 500 500 1000 1000 1000 1000 1000 • 汎化は100%成功するわけでない. • 訓練データとは別のデータ(検証データ)を 用いて検証する 10
「汎化は,プログラミングを補うもの」と 考えられるようにも • ふつうのプログラミング: あらゆる事態を想定して,プログラムを作成 • 汎化: 未知のデータについても処理できる 11
AI による予測結果が正しいかの検証 • 訓練データ ・・・ 学習用 • 検証データ ・・・ 検証データで予測してみて,正解が 得られるか確認 12
機械学習だからと言って「必ず正解」ではない 予測 予測成功,予測失敗 「はい」,「いいえ」の予測 予測 正解 はい いいえ はい 予測成功 予測失敗 いいえ 予測失敗 予測成功 13
2-2 Iris データセット 14
アヤメ属 (Iris) 内花被片 • 多年草 • 世界に 150種. 日本に 9種. • 花被片は 6個 外花被片 • 外花被片(がいかひへん) Sepal 3個(大型で下に垂れる) • 内花被片(ないかひへん) Petal 3個(直立する) 15
Iris データセット Iris データセット(データ数は 50 × 3) のうち、先頭 10 行 ◆ 3種のアヤメの外花被 辺、内花被片を計測 ◆ 種類も記録 setosa versicolor virginica ◆ データ数は 50 × 3 外花被片(Sepal) 内花被片(Petal) 種類 の長さと幅 の長さと幅 作成者:Ronald Fisher 作成年:1936 特徴量 ラベル 16
Iris データセットの散布図 縦 軸 : 内 花 被 片 の 幅 横軸:内花被片の長さ 次の3種類の分類済みのデータ 0: setosa 1: versicolor 2: virginica 17
Iris データセットと配列(アレイ) [0 0 0 0 0 0 0 0 0 0 Iris データセット 特徴量(数値) サイズ:150 × 4 ラベル(数値) サイズ:150 setosa → 0 versicolor → 1 virginia → 2 ラベルの数値化 18
Iris データセットは Python でも利用可能 ソースコード from sklearn.datasets import load_iris iris = load_iris() X, y = iris.data, iris.target print(X) print(y) 19
2-3 教師あり学習と教師なし 学習 20
教師あり学習と教師無し学習 訓練データに「正解」が含まれているか含まれていない か? ① 教師あり学習 訓練データ (x, y) を使用. (x, y) ・・・ 入力 x に対する正解 y の組 ② 教師なし学習 訓練データ (x) を使用 (x) ・・・ 正解がない ※ 正解付きのデータと,正解が付かないデータが混在 する場合「半教師あり学習」という 21
教師あり学習と教師無し学習の主な用途 ① 教師あり学習 • 分類:何種類かに分類すること • 判別:2種類への分類 • 回帰:ある量から,別の量を予測するための もの ② 教師なし学習 • クラスタリング:データの密集を見ることに よる分析 • 分離(異常と正常の分離など) • 自己符号化(オートエンコード):データの 符号化の一種 予測 22
分類 訓練データ それぞれの範囲を得 る 分類:何種類かに分類すること 23
判別 訓練データ それぞれの範囲を得 る 判別:2種類への分類 24
回帰 訓練データ 予測に使用する 線 回帰:ある量から,別の量を予測するためのもの (例)身長と体重の関係,年齢と収入の関係 25
クラスタリング 訓練データ 近くにあるデータを 1つにまとめる クラスタリング:データの密集を見ることによる 分析 26
分離 訓練データ 集まっているものを正常と 考え,それ以外は異常 分離(異常と正常の分離など) 27
自己符号化(オートエンコード) 訓練データ コード 訓練データには含まれていな くても,現実にありえそうな データを符号化(コード化) 28
機械学習 ① 教師あり学習 • 決定木による予測 • ニューラルネットワークによる予測 • 線形回帰 • 線形判別 • SVM など ② 教師なし学習 • ニューラルネットワークによる自己符号化(オートエ ンコーダ) • クラスタリング • 次元削減 など 29
2-4 教師あり学習による予測 (分類と回帰) 30
教師あり学習 訓練データ (x, y) を使用. (x, y) ・・・ 入力 x に対する正解 y の組 入力:予測のもとになるデータ 正解:予測の結果 31
分類 • 学習により、「未知のデータを分類できる能力を 獲得」と考えることもできる 未知のデータ 32
Iris (あやめ)の分類 内花被片,外花被片の長さと幅から, Iris(あやめ)の分類を行う 使用する データ 外花被片(Sepal) 内花被片(Petal) 種類 の長さと幅 の長さと幅 入力 正解 0: setosa 1: versicolor 2: virginica 33
決定木による分類 • データから,自動で予測のためのルールを作る. • ルールを用いて,自動で予測(分類や回帰)を行う ④ ① ② ③ ④ ルール ② ① ③ 全体を縦または 横に区切っていく 34
ニューラルネットワークによる分類 ① ニューラルネットワーク作成 • 1層目:ユニット数 20, 種類は relu • 2層目:ユニット数 3, 種類は softmax ユニット 入力データ 4個の数字 のまとまり ユニット数: 20 種類: relu 全体で 2層 ユニット 出力データ 0, 1, 2 それぞれの確率 ユニット数: 3 種類: softmax 35
ニューラルネットワーク作成のプログラム例 プログラムを使用し, ニューラルネットワークを作成 import tensorflow as tf 入力データ は 4個の数字 1層目のユニット数は 20 種類は relu def create_model(): return m = tf.keras.models.Sequential([ tf.keras.layers.Dense(units=20, input_dim=4, activation='relu'), tf.keras.layers.Dropout(0.1), tf.keras.layers.Dense(units=3, activation='softmax') 2層目のユニット数は 3 ]) 種類は softmax ニューラルネットワークの作成では,次を設定する • 入力データでの数値の個数 • ユニットの数(層ごと) • ユニットの種類(層ごと) 36
ニューラルネットワークによる分類 ② ニューラルネットワークの学習の繰り返し 学習の繰り返し回数は 50 訓練データの指定 検証データの指定 37
ニューラルネットワークによる分類 ③ 検証データ(あやめの花 75)による検証 検証データの予測結果 検証データについて, 予測結果と正解を比べての 精度 (accuracy) 38
学習曲線 学習の繰り返しによる 分類の精度(accuracy)の変化 実線:訓練データでの分類の精度 点線:検証データでの分類の精度 39
回帰 訓練データ 縦 軸 : 内 花 被 片 の 幅 横軸:内花被片の長さ 内花被片の長さ(petal_length)の値から, 内花被片の幅(petal_width) の値を予測することを行う. 40
2-5 教師なし学習によるクラ スタリング,分離 41
Iris データセットを用いたクラスタリング 内花被片,外花被片の長さと幅で,クラスタリング を行う. クラスタ数 = 2 に設定 クラスタ数 = 3 に設定 42
Iris データセットを用いた分離 • 内花被片,外花被片の長さと幅について,中央に 近い値と,そうでない値(外れ値)の分離 43