ディープラーニングのしくみがわかる数学入門
超基本
賢い動作とは
- 今までのシステムは、データを人間が読んでルールを導く。
- これからのシステムは、人工知能がデータを読んでルール を導く。
交差検証
訓練データと検証データ(テストデータ)を入れ替えることで、精度を確認すること。例えば、ランダムに選んだり、偶数日のデータを訓練データ・奇数日のデータをテストデータにするなど。
最適化問題
(例えば正解率などが)最大や最小となる状態を求める問題のこと。
効率的な探索
最適化問題では、データ量が増えても短い時間で探索する必要があり、以下のような探索方法が使われる。
- 単純増加する関数 → 二分探索など
- ランダムに変化する関数 → 遺伝的アルゴリズムなど
機械学習の考え方
関数 --- 入力を受け取り、何らかの変換を行い、出力する。ブラックボックスのようなもの。
機械学習の種類
- 教師あり学習
- 個々のデータが「入力」と「正しい出力」のペアとなるようにする
- データを「訓練用」と「テスト用」に分ける
- コンピュータに、訓練用データで学習させ、関数を作らせる
- 作った関数でテスト用データを処理したときに正解率が高くなるよう、何度も調整してやり直す(どの関数を使うか、パラメータをどう調整するかなど)
- 教師なし学習
- 正解がわからない場合、正解を用意できない場合に使う
- データの特徴を掴むために使う(クラスタリングなど)
- 強化学習
- 報酬が最大になるよう、コンピュータに試行錯誤で学習させる
ニューラルネットワーク
- 人工知能を実現する一つの方法が機械学習
- 機械学習を実現する一つの方法がニューラルネットワーク
- ニューラルネットワークを進化させたのがディープラーニング
動作
- ニューロンは入力(=信号)とその「重み」を受け取る。
- 結果がしきい値を超えたら 1 を出力する(発火する)。超えなければ 0 を出力する。
- 入力層、中間層、出力層を持つ
- 上記図の場合、重みを持つ層が 2 層なので、2 層ネットワークと呼ぶ。中間層が増えれば、3 層、4 層・・・ネットワークという。
- まずはじめは、重みはランダムに設定される。その後、訓練データを入れて、正しい結果が得られるよう重みを調整する(最適化、学習などという)。
- テストデータで正解率を求めて、そのネットワークを評価する
- 訓練データにのみ最適化したネットワークができてしまう過学習が起こらないよう、あえて最適化を制限する場合もある
数列・統計・確率
数列と集合
数列、漸化式
- 数列 --- 数が一列に並んでいるもの。順番に意 味がある。
- 項 --- 一つの数。初項、第 2 項、第 3 項、、、第項(一般項)
- 一般項 --- 第項の値を、の値だけを使って記述した式
- 漸化式 --- 第項の値を、複数の項の関係で記述した式(フィボナッチ数列など)