ディープラーニングのしくみがわかる数学入門
超基本
賢い動作とは
- 今までのシステムは、データを人間が読んでルールを導く。
- これからのシステムは、人工知能がデータを読んでルールを導く。
交差検証
訓練データと検証データ(テストデータ)を入れ替えることで、精度を確認すること。例えば、ランダムに選んだり、偶数日のデータを訓練データ・奇数日のデータをテストデータにするなど。
最適化問題
(例えば正解率などが)最大や最小となる状態を求める問題のこと。
効率的な探索
最適化問題では、データ量が増えても短い時間で探索する必要があり、以下のような探索方法が使われる。
- 単純増加する関数 → 二分探索など
- ランダムに変化する関数 → 遺伝的アルゴリズムなど
機械学習の考え方
関数 --- 入力を受け取り、何らかの変換を行い、出力する。ブラックボックスのようなもの。
機械学習の種類
- 教師あり学習
- 個々のデー タが「入力」と「正しい出力」のペアとなるようにする
- データを「訓練用」と「テスト用」に分ける
- コンピュータに、訓練用データで学習させ、関数を作らせる
- 作った関数でテスト用データを処理したときに正解率が高くなるよう、何度も調整してやり直す(どの関数を使うか、パラメータをどう調整するかなど)
- 教師なし学習
- 正解がわからない場合、正解を用意できない場合に使う
- データの特徴を掴むために使う(クラスタリングなど)
- 強化学習
- 報酬が最大になるよう、コンピュータに試行錯誤で学習させる
ニューラルネットワーク
- 人工知能を実現する一つの方法が機械学習
- 機械学習を実現する一つの方法がニューラルネットワーク
- ニューラルネットワークを進化させたのがディープラーニング
動作
- ニューロンは入力(=信号)とその「重 み」を受け取る。
- 結果がしきい値を超えたら 1 を出力する(発火する)。超えなければ 0 を出力する。
- 入力層、中間層、出力層を持つ
- 上記図の場合、重みを持つ層が 2 層なので、2 層ネットワークと呼ぶ。中間層が増えれば、3 層、4 層・・・ネットワークという。
- まずはじめは、重みはランダムに設定される。その後、訓練データを入れて、正しい結果が得られるよう重みを調整する(最適化、学習などという)。
- テストデータで正解率を求めて、そのネットワークを評価する
- 訓練データにのみ最適化したネットワークができてしまう過学習が起こらないよう、あえて最適化を制限する場合もある
数列・統計・確率
数列と集合
数列、漸化式
- 数列 --- 数が一列に並んでいるもの。順番に意味がある。
- 項 --- 一つの数。初項、第 2 項、第 3 項、、、第項(一般項)
- 一般項 --- 第項の値を、の値だけを使って記述した式
- 漸化式 --- 第項の値を、複数の項の関係で記述した式(フィボナッチ数列など)
漸化式は、プログラムのループ処理で書くと簡単。一方、漸化式を一般項に変換するのは難しい場合が多い。
数列の和
数列の和は大文字シグマで表される。初項から第項までの和()は、下記の式で表される。
数列の和はループ処理で求めてもよいが、公式を活用するとより高速に処理できる。
集合、内包表記
- 集合 --- 数の集まり。順番に意味がない。 など、大文字アルファベットで表す。
- 有限集合 --- など限りがある集合
- 無限集合 ---
整数
など限りがない集合。{n|nは整数}
などの表現をする。
平均、分散、標準偏差
名前 | 表現 | 説明 |
---|---|---|
算術平均 | NumPy ではmean 、こちらを使うことが多い | |
加重平均 | NumPy ではaverage | |
分散(Variance) | 「平均との差の 2 乗」の総計 | |
標準偏差(Standard Deviation) | 分散の平方根 |
※ 分散・標準偏差は小文字のシグマで表す
データの標準化(Z スコア正規化)
平均を 0、分散を 1 に合わせること。標準化された各データ()は、下記の式で求めることができる。
- --- 標準化前の各データ
- --- 平均
- --- 標準偏差
データの分布
データの分布を考えることはとても大切。ヒストグラム(度数分布表)などを使う。
- 正規分布(normal distribution)
- 一様分布(uniform distribution)
- 二項分布(binomial distribution)
確率
確率の基本
「試行」を行い「事象」が起こる。
事象 A が起こる確率 = 事象 A が起こるパターン数 / 試行によって起こりうる全パターン数
事象 A が起こる確率をと表す。
- 数学的確率 --- 計算で求めた確率
- 統計的確率 --- 実際に試行して求めた確率
確率変数と確率分布
- 確率変数()
- 確率的に決まる値のこと。確率に従っていろいろな値をとる変数のこと。
- 離散型と連続型がある
- e.g. サイコロを振ったときに出る目は、確率変数である
- 確率分布
- 「確率変数の取りうる値」と「その値をとる確率」の対応のこと
- 離散型では表(確率分布表という)で、連続型ではグラフで表現することが多い
確率によって値が変動するものを「確率変数 」とおき、その確率分布を調べることで、さまざまな物事を「確率による重み」をつけて計算することが可能になる
確率分布表の例
確率変数 | ... | ||||
確率 | ... |
確率変数の期待値(expected value)
確率変数の期待値 = 確率変数の平均値
離散型の場合は下記の式で計算する。
連続型確率変数の場合は積分により計算する(省略)。