【深層学習入門】ディープラーニングのアルゴリズム・原理

深層学習(ディープラーニング)のアルゴリズム・原理について入門者向けにまとめました。

深層学習(ディープラーニング)の特徴をまとめると以下のとおりです。

深層学習(ディープラーニング)
特性 モデル:神経回路, 学習タイプ:教師あり 予測対象: 連続値・分類, 可読性:✕, 並列処理:○
特徴 ・ディープニューラルネットワークを用いた機械学習の手法
・①訓練データを用いて予測を行い(順伝搬)、予測値と正解ラベルの誤差を計算 ②誤差が最小となるように勾配降下法で重みを更新(逆伝搬) ①②を繰り返す
・複雑なモデルを構築できる(利点)
・ハイパーパラメータが多い(欠点)
過学習が多い(欠点)
・勾配消失問題が起こる(欠点)

【基本用語】勾配降下法

用語 概要
勾配降下法 ディープニューラルネットワークの学習では、誤差(予測値と正解データの差)を最小化するために、重みを更新します。勾配降下法と呼ばれるアルゴリズムにより、重みを少しずつ更新し、勾配(誤差を微分した値)が最小になる点(大域的最適解)を探索します。しかし、勾配降下法で求められる解は大域的最適解になるとは限らず、「局所最適解」や「停留点」にトラップされてしまう問題がある
局所最適解 周辺では誤差は小さいが、全体的には最小値ではない解
大域的最適解 誤差の値を最も小さくする解
停留点 局所最適解、大域的最適解でもないが、勾配が0になる点
エポック数 訓練データを何度学習に用いたかを表す数
イテレーション数 重みを何度更新したかを表す数
逐次学習 訓練データ1つに対して、重みを1回更新する。重みの更新タイミング方法の1つ(データ1つにつき、イテレーション数も増加)。これを確率的勾配降下法(SDG)という。
バッチ学習 訓練データすべてに対して、その誤差の総和を計算して小さくするように重みを1回更新する。重みの更新タイミング方法の1つ(エポック数とイテレーション数が同じ)。これを(バッチ)勾配降下法という。
ミニバッチ学習 ミニバッチ(訓練データからランダムにサンプリングしたデータの集まり)に対して、その誤差の総和を計算して小さくするように重みを1回更新する。重みの更新タイミング方法の1つ。これをミニバッチ勾配降下法という。特によく用いられて、良い重みを得やすい。
勾配消失問題 誤差の勾配が入力層に向けて伝搬していく過程で、勾配値が急激に0に近づいてしまい学習が進まなくなる問題。層数が多いほど起こりやすい。中間層の活性化関数にReLU関数を使うことである程度解消できる。
正解率 全予測に対する正答率です。
適合率(Precision) 正と予測したデータのうち、実際に正であったものの割合。「精度」ともいう。
再現率 実際に正であるデータのうち、正であると予測されたものの割合。
F-measure(F値) 適合率と再現率の調和平均(算術平均でない)。
変分オートエンコーダ(VAE) ニューラルネットワークを使った生成モデルの1つ。 原論文では、確率分布に対するパラメーター最適化アルゴリズムであるオートエンコーディング変分ベイズアルゴリズム(Auto-Encoding Variational Bayes (AEVB) algorithm)を導入し、その応用例として変分オートエンコーダーを導入している。
R-CNN
fast R NN
YOLO You Only Look Onceの略で、物体検出アルゴリズムの1つ。画像をグリッドで分割して、それぞれのグリッドに対して固定されたいくつかのバウンディングボックスの当てはまり具合をみる。
SSD Single Shot Multibox Detectorの略で物体検出アルゴリズムの1つ。画像をグリッドで分割して、それぞれのグリッドに対して固定されたいくつかのバウンディングボックスの当てはまり具合をみる。
勾配消失問題 誤差の伝播を逆伝搬する過程で、勾配の値が消失し最適解が計算できず、入力層付近の学習が進まなくなる問題です。原因の1つは活性化関数で、シグモイド関数などの場合、勾配が0に近い領域が存在するため、勾配消失に陥ると重みがほぼ修正されなくなります。多層ニューラルネットワークでは一カ所でも勾配が0に近い層が存在すると、それより下層の勾配も全て0に近くなります。このため、層数が増えるほど学習が難しくなります。そこで、活性化関数をシグモイド関数でばくランプ関数(ReLUなど)に変更すると、この問題は改善されました。活性化関数の他に、重みや初期化、勾配降下法の選択などが勾配消失問題に関係しています。
自己符号化器 オートエンコーダーとも呼ばれる。出力が入力と同じに近づくよう学習することを目指した砂時計型の3層構造をしたニューラルネットワークです。正解ラベルが入力となります。入力層と出力層が3次元、中間層が2次元のとき、中間層では入力層より次元が減り、出力層でそれが元に戻されます。つまり、中間層では特徴的な情報だけに圧縮されます(次元圧縮)。次元削減に使われる他にもニューラルネットワークの事前学習や初期値の決定などにも応用されます。
・入力を訓練データとして使い、データをよく表す特徴を獲得する
・教師データを使わない教師なし学習に分類される
・入力層と出力層のノード数が同じ
・中間層のノード数は入出力層よりも少ない
再帰型ニューラルネットワーク(RNN) 内部に閉路をもつニューラルネットワークです。過去の状態を保持できるため、過去の入力を参考に予測ができます。よって、「時系列データの解析」に適しています。ただし、遠い過去の入力値を反映することは難しいという課題があります。
LSTM long short-term memoryの略で、RNNの拡張として1995年に登場しました。RNNの中間層のユニットをLSTM blockと呼ばれるメモリと3つのゲートを持つブロックに置き換えることで従来のRNNでは学習できなかった長期依存(long-term dependencies)を実現しています。
敵対的生成ネットワーク Genera tive Adversarial Networks(GAN)の略。イアン・グッドフェローらによって考案された、生成ネットワーク識別ネットワークからなる教師なし学習手法。生成ネットワークは、データから特徴を学習することで、訓練データと同じような実在しないデータを生成したり、存在するデータの特徴に沿って変換ができる。識別ネットワークは、そのデータが訓練データからきたものか、生成ネットワークから来たものかを識別する。AIの先駆者、ヤン ルカン氏は、GAN を「機械学習において、この 10 年間でもっともおもしろいアイデア」と形容した。GANは紙幣の偽造の関係でよく例えられる。偽造者は本物に近い偽札を作ろうとし、警官はそれが偽物と見抜く。すると偽造者は、さらに精巧な偽札を作り出すように技術を発展させる。こうした「いたちごっこ」が繰り返され、最終的には本物に近い偽札が生成されるようになる。つまり、生成ネットワーク(偽造者)と識別ネットワーク(警察)を交互に競合させ、学習を進めることで、Generatorは本物のデータに近い偽物データを生成できるようになる。

【自然言語処理】

自然言語処理の基本的なフローは以下のとおりです。

項目 概要
①形態素解析 文章データを、形態素(文法・単語にもとづく言語的に意味をもつ最小単位)に分割し、その形態素の品詞(動詞、形容詞など)を判別する。
②データのクレンジング 不要な文字列を取り除く。
③形態素解析を行ったデータのベクトル化 BoW(Bag-of-Words)などでデータをベクトル形式に変換する。
④各単語の重要度評価 TF-IDFなどを使って行う。
用語 概要
自然言語処理 人間が日常的に使う言葉を計算機で処理する技術。
セマンティックウェブ 情報リソースに意味を付与し、コンピュータで高度な意味処理を実現すること。
意味ネットワーク 単語同士の意味関係をネットワークで表現。
統計的自然言語処理 言語処理に確率論的あるいは統計学的手法を用いる技術。
構文解析 形態素解析をもとにして、それぞれの形態素の間の構文的関係を解析すること。
含意関係解析 2つの文の間に含意関係があるか、判別すること。
意味解析 構文解析をもとに、意味をもつまとまりを判定すること。
文脈解析 文単位で、構造や意味を解析すること。
照応解析 照応詞の指示対象や省略されている名詞を推定・補完すること。
談話解析 文章中の文と文の関係や、話題の推移を解析すること。
LDA Latent Diricjlet Allocationの略。文中の単語から、何のトピックかを推定する教師なし学習。ディリクレ分布が用いられ、各単語が「隠れたあるトピック」から生成されそのトピックを推定する。
LSI Latent Semmanitc Indexingの略。文章ベクトルで複数の文章に共通に出現する単語を解析する。それにより低次元の潜在意味空間を構成する。計算に特異値分解が利用されまる。
Word2Vec 2013年にGoogle社によって開発され、単語をベクトルで表現し、単語同士の意味の近さの計算や、計算のアナロジーを行えるようにする仕組み。
Word2Vec 単語のベクトル表現を、Skip-Gram Modelなどの手法で「周辺語の予測」というダミータスクをニューラルネットワークによって解く過程で得られる。

【強化学習】DQN

項目 概要
強化学習 Reinforcement learning。エージェントがある環境内で現在の状態を観測し、収益を最大化するための取るべき行動を決定する学習手法の1つです。つまり、エージェントが試行錯誤を繰り返していき、徐々に環境に適応した行動を取るような学習を行います。正解データの代わりに、与えられた環境における個々の行動に対して得点や報酬を与え、一連の行動に対して評価値を与えることで、高い得点を取る、すなわち最良の行動を自律的に学習させます。ロボットの動作制御で、モンテカルロ法やQ学習といった強化学習手法がよく応用されている。
深層強化学習 強化学習は膨大な計算コストがかかり、ディープニューラルネットワークを用いて近似計算をおこなうアイデアを深層強化学習といいます。
DQN DeepMind社によって開発された深層強化学習アルゴリズムでDeep Q-Networknの略。行動価値を最大化する方策を効率的に計算することを目指したニューラルネットワークで、学習が収束するように工夫された畳み込みニューラルネットワーク(CNN)の一種。2015年10月に人間のプロ囲碁棋士に勝った初のAI(アルファ碁)
OpenAI イーロン・マスクが協力する非営利団体のOpenAIでは、仮想的に100年分相当のシミュレーションを行い、ロボットハンドが人間の手の動かし方をゼロから身につけ、積み木を持ち上げて指先で自在に動かす方法を獲得させることに成功しました。
一気通貫学習 ロボットの一連の動作を1つのディープニューラルネットワークで実現しようとする学習。
マルチモーダル情報処理 五感や体性感覚(平衡感覚や空間感覚など)などの複数の感覚情報を組み合わせて処理すること。具体的には、ロボットカメラ(視覚)、マイク(聴覚)、圧力センサ(触覚)などの異なったセンサ情報を収集し、処理する。

【その他】法務(著作権など)、WEBサービス、SAE J3016

法務 概要
著作権 AIによる創作物の著作物性を明文的に定めた法律は存在しない(2020年5月現在)。しかし、人がAIを道具として利用した創作については、人の創作意図や創作的寄与がAIに与えられるため、利用者に著作権が発生するといわれている。人が単純な指示のみを行い、AIが創作したものについては、この問題は有識者により議論されており、「次世代知財システム検討委員会報告書」などのガイドラインで公表されている。
学習済みモデルの保護 学習済みモデルは、技術(モデルのコピーを技術的に防ぐ)、契約(利用規約を定め、規約違反を犯した場合の賠償責任を明記)、法律(特許法、著作権法、不正競争防止法などの知的財産を保護する法律)の3要素で保護できる。契約による保護は、法律の制定を待たずに保護できる即応性と、柔軟な条件を定められる利点があります。
WEBサービス 概要
Kaggle データ解析のコンペティションや、ディスカッションが行われているプラットフォーム。
Google Scholar 学術論文の検索エンジン。
Coursera 世界中にある大学のオンライン講義を受講できる
arXiV 研究論文の公開や閲覧ができる
OpenAI Gym 自作した強化学習要アルゴリズムをテストできるシミュレーション用のプラットフォーム。

Society of Automotive Engineers(SAE)は、0(完全手動)から5(完全自動)まで、自動運転の6つのレベルを定義しており、米国運輸省に採用されています。

レベル 概要
レベル0(自動運転なし) 人間がすべての運転を行う。
レベル1(運転支援) 車両システムが時々人間の運転者を支援し、いくつかの運転タスク(ステアリング操作、加減速操作など)レレベル2(部分的自動運転)|車両システムが、複数の運転タスクを事実上実施でき、人間の運転者は、運転環境を監視し、残りの部分の運転タスクを行う。
レベル3(条件付き自動運転) 車両システムが、複数の運転タスクを事実上実施し、さらに運転環境をある場合に監視する人間の運転者は車両システムから要請があった場合に、運転制御を行う(準備が必要)。
レベル4(高度な自動運転) 車両システムがすべての運転タスクを実施し、運転環境を監視できる。人間は運転制御を行う必要はないが、車両システムはある種類・条件下のみで走行できる。
レベル5(完全自動運転) 車両システムが人間の運転者が運転できる、すべての環境条件下ですべての運転タスクを実施できる。
参考 【SAE J3016とは】自動運転車のレベルと2025年の予想
【機械学習入門】アルゴリズム&プログラミング
このサイトでは、機械学習のアルゴリズム(原理)やプログラミング方法について入門者向けにまとめました。
【情報に関する理論】符号理論、述語論理、オートマトンなど
符号理論、述語論理、オートマトン、形式言語、計算量、人工知能(AI)、知識工学、学習理論、コンパイラ理論、プログラミング言語論・意味論についてまとめました。

コメント

タイトルとURLをコピーしました