Share
Embed
Transcript
34 slides
-
第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) -
6 機械学習の基本 • 過去データを収集して、データの特徴をアルゴリズムで分析する • 新しいデータの特徴と比較して、新しいデータについて予測する スパムメールを 収集する スパムメールの 特徴を分析する
新しく届いたメールが 「スパムメールの特徴」を 持っているか判断する (*) 実際にはアルゴリズムを 使って自動分析する 6 -
7 ディープラーニングの誕生 • 「ニューラルネットワーク」の考え方は古くからあったが、多くの研究者は、 「アイデアとしては面白いが実用化は難しい」と考えていた • 2012 年に Google の研究者が「階層の深いニューラルネットワーク」を用い
て、 YouTube のデータから「猫」(などの物体)を識別することに成功 • これをきっかけにして、「階層の深いニューラルネットワークを用いた機械学 習」=「ディープラーニング」の実用化がはじまる 7 -
9 ニューラルネットワークの仕組み Input ニューラルネットワークの本質は 「入力データから予測値を出力する関数」 “cat” コンピューターから見れば 各ピクセルの色を表す 数字の集まりにすぎない たくさんの関数で順番に
計算を行って、結果を出力 レイヤー ノード それぞれのノードから 計算結果が出てくる 9 -
12 ディープラーニングが実用化された要因 • 学習アルゴリズムの研究 ◦ 膨大な数のパラメータを効率的に最適化する手法 • 学習データの蓄積 ◦ 膨大な数のパラメータを最適化するのに十分なデータ量
• 計算リソース ◦ 並列計算技術、GPUを用いた計算技術の発展 12 -
14 機械学習アルゴリズムの種類 • 教師あり学習 ◦ 「正解ラベル」を持ったデータを元に学習を行う方法 • 教師なし学習 ◦ 「正解ラベル」を持たないデータを分析する方法
• 強化学習 ◦ 環境内を行動する「エージェント」が自分でデータを集めながら学習する 方法 14 -
15 機械学習あり学習の例 • 分類アルゴリズム(Classification) ◦ 複数のクラスに分類された既存のデータを用いて、新しいデータがどのク ラスに属するかを予想する ◦ スパムメールの判定、画像の分類など •
回帰分析(Regression) ◦ 具体的な数値を予測する ◦ 実際には、データの背後にある「関数」を見つけ出して、それを元に予測 値を計算する 15 -
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 -
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 -
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