ディープラーニングの概要と学習の仕組みについて。
目次
AI・ディープラーニングの全体像
- 人工知能
- 機械学習
- ディープラーニングの基本・応用
- ディープラーニングの研究
- AIプロジェクト
- AI社会実装に伴う法律・倫理
ディープラーニングの概要
ベースとなる”機械学習”について
- 「機械学習」→学習データを用いてモデルを訓練し、法則性を自動的に見つけて新しいデータに対する予測を行う
- 「学習済みモデル」の目的→新しいデータに対して高い予測精度が出せること→「汎化性能」
- 教師あり学習→分類問題、回帰問題
- 教師なし学習
- 半教師あり学習
- 強化学習
特徴量エンジニアリング
- 「特徴量」→データの中の予測の手がかりとなる変数
- 「特徴量設計(特徴量エンジニアリング)」→データ前処理を行い、予測変数を整える(選別、欠損値処理、文字列数値化など)
- 機械学習で予測精度を高めるために重要な役割を果たす
特徴量を自動抽出できるディープラーニング
- 一般的な機械学習手法→特徴量設計に多くの時間と労力を要する
- 機械学習の一手法→「ニューラルネットワーク」
- 「ニューラルネットワーク」→高精度な予測を行うために必要な特徴量を、データから自ら抽出することができる
ニューラルネットワークの学習の仕組み
基本構造
- ニューラルネットワーク→人間の脳神経系システムを模倣したアルゴリズム
- 1つのニューロン→「ノード」
- ニューラルネットワークの構成要素の最小単位→「単純パーセプトロン」
- 単純パーセプトロンを複数つなぎ合わせたもの→「多層パーセプトロン」(ニューラルネットワークの基本形)
- 多層パーセプトロン(ニューラルネットワーク)→「入力層」・「隠れ層(中間層)」・「出力層」
- 「入力層」→データを受け取る
- 「隠れ層(中間層)」→データから識別に必要な特徴量を学習する
- 「出力層」→予測結果を出力する
※分類問題:出力層には分類クラスの数だけニューロンがあり、出力値は各クラスの確率を表す - 「全結合層」→各層のニューロンが仮想の導線(エッジ)で結合されている状況
- 「活性化関数」→入力データと出力データとを対応付ける関数
- 「重み」→ニューロン間の結合の強さであり、入力と出力の関係性を決める重要なパラメータ
- 「学習」→正しい予測を出力するために、「ニューロン間の結合の強さ(重み)」を最適化する作業
ヒエラルキー
- 「パーセプトロン」→ニューロンをネットワーク状に組み合わせたもの全般
※現在実用化されているニューラルネットワークは、多層パーセプトロンを拡張したもの - 隠れ層の数を増やせば増やすほど、より複雑な情報処理ができる?
→デュープニューラルネットワーク(Deep Neural Network;DNN)
単純パーセプトロン (Simple Perceptoron) | ・入力層と出力層との2層のみのシンプルな構造 ・活性化関数:ステップ関数 ・0か1かの二値のみ出力 ・線形分類可能な問題、二値クラス分類にしか使えない |
---|---|
多層パーセプトロン (Multilayer Perceptoron) | ・入力層と隠れ層(中間層)と出力層の3層以上の構造 ・活性化関数:非線形関数 ・線形分離不可能な問題と多クラス分類にも対応可能 |
学習に関わる要素
重みとバイアス
- ニューラルネットワークの学習
→ニューロン間の結合の強さを表すパラメータ(「重み」・「バイアス」)を層ごとに最適化する - 前層の各ニューロンからの出力信号のそれぞれに対応する「重み(w1,w2,…,wn)」を乗算したものを、すべての「i(i=1,2,…,N)」について足し合わせ、定数項として「バイアス(b)」を足し算したもの
- w1x1+w2x2+…+wnxn+b
活性化関数
- ニューロンへの入力(前層からの出力に重みをかけ、バイアスを足した値)を、そのニューロンの中の「活性化関数(Activation Function)」に通すことで、次層に渡す出力が決定される
- 活性化関数は、何らかの判断基準(閾値)にしたがって、入力されたデータを処理する
- 活性化関数の役割の本質:ネットワークのさらに下流で、データ特徴の学習をしやすくするために、データを整えることで解釈できる
- 多層パーセプトロンでは、活性化関数に非線形関数を採用する
- 隠れ層の活性化関数にはシグモイド関数がよく使われていたが、最近では、ReLU関数が主流(アルゴリズムの改善が目的)