JP6610278B2 - 機械学習装置、機械学習方法及び機械学習プログラム - Google Patents

機械学習装置、機械学習方法及び機械学習プログラム Download PDF

Info

Publication number
JP6610278B2
JP6610278B2 JP2016006808A JP2016006808A JP6610278B2 JP 6610278 B2 JP6610278 B2 JP 6610278B2 JP 2016006808 A JP2016006808 A JP 2016006808A JP 2016006808 A JP2016006808 A JP 2016006808A JP 6610278 B2 JP6610278 B2 JP 6610278B2
Authority
JP
Japan
Prior art keywords
error
channel
value
output
layer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016006808A
Other languages
English (en)
Other versions
JP2017129896A (ja
Inventor
裕平 梅田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016006808A priority Critical patent/JP6610278B2/ja
Priority to US15/383,195 priority patent/US10635975B2/en
Publication of JP2017129896A publication Critical patent/JP2017129896A/ja
Application granted granted Critical
Publication of JP6610278B2 publication Critical patent/JP6610278B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Description

本発明は、機械学習技術に関する。
近年、多層ニューラルネットワーク(DNN(Deep Neural Network)とも呼ばれる)がデータの分類に利用されるようになっている。例えば、DNNの一種であるCNN(Convolutional Neural Network)は、特に1次元の時系列データ及び2次元の画像データの分類によく利用される。図1に、CNNの一例を示す。図1において、丸の図形はノードを表し、ノード間を結ぶ線分はエッジを表す。図1に示すように、CNNにおいては、入力層と出力層との間に畳み込み層及びプーリング層が設けられる。畳み込み層及びプーリング層においてデータから特徴が抽出され、抽出された特徴に基づいて分類が行われる。
CNNにおいては、入力が単一である場合だけではなく複数である場合もある。例えば、複数の観測点に設置されたカメラで取得されたデータによって気象環境の分類を行うケース、及び、両手及び両足に取り付けられたウエアラブルセンサで取得されたデータによって行動推定を行うケース等がある。図2に、複数の入力を処理するCNNの一例を示す。図2に示したCNNにおいては、各入力層に対応するノードが入力層に有るので、複数の入力を処理することができる。
但し、このCNNにおいては複数の入力の各々から特徴が抽出されるわけではなく、複数の入力の組み合わせに対して1つの特徴が抽出される。一般に、各画像及び各時系列のそれぞれが独立した意味を有するので、それぞれから特徴を抽出する方が好ましい場合が多い。また、複数の入力のデータを簡単には結合できない場合、及び、適用すべきネットワークの構造が異なるために2層目以降においてデータを結合できない場合がある。前者のケースとしては、例えば、サイズが異なる複数の画像のデータのように、結合しても長方形のデータにならないためにCNNを適用できないケースである。後者のケースとしては、例えば、画像データ及び時系列データの両方を処理するケース、及び、画像データ及び言語データの両方を処理するケース等である。
一方で、図3に示すような並列型のCNNであれば、各入力から特徴を抽出することができる。図3においては、各入力についてチャネルが設けられており、チャネルにおけるネットワークが入力に適した構造になっている。各チャネルにおいて入力から特徴が抽出され、最終段階において特徴が組み合わされる。
しかし、入力が出力に対して及ぼす影響の強さは画像及び時系列の種類によって異なり、また、画像及び時系列の種類によっては或る出力に対して全く影響を及ぼさないことがある。一般的な誤差逆伝播法によって学習を行う場合、各チャネルに対して誤差の影響を均等に割り振ることになるため、入力の影響の強さを考慮した学習を行うことができない。また、入力が影響を及ぼす出力と及ぼさない出力とが有ったとしても、それを考慮した学習を行うことができない。以上のようなことが原因で適切な学習が行われず、結果として分類の精度が高くならないことがある。
米国特許出願公開第2014/0180989号明細書
Natalia Neverova, Christian Wolf, Graham Taylor, and Florian Nebout, "ModDrop: adaptive multi-modal gesture recognition", [online]、2015年6月6日、Cornell University Library、[平成28年1月12日検索]、インターネット Yi Zheng, Qi Liu, Enhong Chen, Yong Ge, and J. Leon Zhao, "Time Series Classification Using Multi-Channels Deep Convolutional Neural Networks", WAIM2014, Lecture Notes in Computer Science 8485, pp. 298-310, 2014
本発明の目的は、1つの側面では、並列型ニューラルネットワークによる分類の精度を高めるための技術を提供することである。
本発明に係る機械学習方法は、並列型ニューラルネットワークにおける複数のチャネルのうち第1のチャネルの最終層の値に対して0で置換する処理であるドロップアウトを実行した場合の出力と、ラベルとの誤差である第1の出力誤差を算出し、第1のチャネルの最終層の値に対してドロップアウトを実行しない場合の出力と、ラベルとの誤差である第2の出力誤差を算出し、第1の出力誤差と第2の出力誤差との差に基づき、複数のチャネルから1又は複数のチャネルを特定し、特定した1又は複数のチャネルのパラメタを更新する処理を含む。
1つの側面では、並列型ニューラルネットワークによる分類の精度を高めることができるようになる。
図1は、CNNの一例を示す図である。 図2は、複数の入力を処理するCNNの一例を示す図である。 図3は、並列型CNNの一例を示す図である。 図4は、本実施の形態の情報処理装置の機能ブロック図である。 図5は、本実施の形態のDNNの一例を示す図である。 図6は、メインの処理フローを示す図である。 図7は、Δbの算出について説明するための図である。 図8は、ブロックドロップアウトについて説明するための図である。 図9は、Δaの算出について説明するための図である。 図10は、メインの処理フローを示す図である。 図11は、第1学習処理の処理フローを示す図である。 図12は、バックドロップアウトについて説明するための図である。 図13は、第1の学習処理について説明するための図である。 図14は、第1の学習処理について説明するための図である。 図15は、第2学習処理の処理フローを示す図である。 図16は、第2学習処理の処理フローを示す図である。 図17は、出力誤差を乱数で置換する処理について説明するための図である。 図18は、出力誤差を乱数で置換する処理について説明するための図である。 図19は、第2の学習処理について説明するための図である。 図20は、第2の学習処理について説明するための図である。 図21は、第3学習処理の処理フローを示す図である。 図22は、vについて説明するための図である。 図23は、vチルダについて説明するための図である。 図24は、第3の学習処理について説明するための図である。 図25は、第3の学習処理について説明するための図である。 図26は、分類精度の向上について説明するための図である。 図27は、第2の実施の形態について説明するための図である。 図28は、第3の実施の形態について説明するための図である。 図29は、第4の実施の形態について説明するための図である。 図30は、コンピュータの機能ブロック図である。
[実施の形態1]
図4に、本実施の形態における情報処理装置1の機能ブロック図を示す。情報処理装置1は、入力データ格納部101と、ラベルデータ格納部102と、計算結果格納部103と、パラメタ格納部104と、算出部105と、第1学習処理部106と、第2学習処理部107と、第3学習処理部108とを含む。
入力データ格納部101は、本実施の形態のDNNの入力となる入力データ(すなわち入力層のベクトル)を格納する。入力データは、例えば物理的なセンサで取得されたセンサデータ、及び、デジタルカメラ又はスマートフォン等の物理的デバイスで取得された画像データ等である。物理的なセンサとは、例えば、人に取り付けられたウエアラブルセンサ及び屋外に設置された気象観測用のセンサ等である。なお、本実施の形態におけるDNNの入力の数は複数であるので、入力データ格納部101は複数入力のデータを格納する。ラベルデータ格納部102は、入力データに対する正解を表すラベル(教師データとも呼ばれる)を格納する。計算結果格納部103は、算出部105による計算の結果(例えば、出力データ及び各ノードの値等)を格納する。パラメタ格納部104は、DNNのパラメタ(例えば、重み行列)を格納する。
算出部105は、入力データ格納部101に格納された入力データ及びパラメタ格納部104に格納されたパラメタに基づき、DNNに従って出力データ(すなわち出力層のベクトル)を計算する処理を実行し、計算の結果を計算結果格納部103に格納する。第1学習処理部106は、計算結果格納部103に格納されているデータに基づきパラメタ格納部104に格納されているパラメタを更新する処理を実行する。第2学習処理部107は、計算結果格納部103に格納されているデータに基づきパラメタ格納部104に格納されているパラメタを更新する処理を実行する。第3学習処理部108は、計算結果格納部103に格納されているデータに基づきパラメタ格納部104に格納されているパラメタを更新する処理を実行する。
図5に、本実施の形態のDNNの一例を示す。図5に示すように、本実施の形態のDNNはチャネル1c乃至kc(kは2以上の自然数)を有している。各チャネルにおいては、そのチャネルの入力データの処理に適した構造の多層ニューラルネットワークに従って計算が行われる。各チャネルの最終特徴層の各ノードは、出力層のノードの各々に接続される。
なお、本実施の形態の処理はCNNだけでなくあらゆる種類のDNNに適用可能である。また、チャネル1cは画像に対する2次元CNN、チャネル2cは時系列に対する1次元CNN、・・・、チャネルkcは自然言語に対する単純なDNNといったように、各チャネルの構造が異なっていてもよい。
次に、図6乃至図26を用いて、第1の実施の形態における情報処理装置1の動作を説明する。
まず、算出部105は、各チャネルに対応する入力データを入力データ格納部101から読み出す(図6:ステップS1)。算出部105は、例えば、チャネル1cについては脈拍数のデータ、チャネル2cについては心拍数のデータ、・・・、チャネルkcについては脳波のデータといったように、予め定められたルールに従って入力データを読み出す。
算出部105は、各チャネルについて、DNNの計算を進めて最終特徴層のベクトルを計算する(ステップS3)。最終特徴層のベクトルとは、例えば、最終特徴層のノードの値を要素とするベクトルである。なお、算出部105は、各ノードの値等を含む計算結果を計算結果格納部103に格納する。
算出部105は、最終特徴層のベクトルと、パラメタ格納部104に格納されている、最終特徴層と出力層とをつなぐ重み行列とから、出力層のベクトルを計算し(ステップS5)、出力層のベクトルを計算結果格納部103に格納する。
算出部105は、ステップS5において計算した出力層のベクトルと、ラベルデータ格納部102に格納されているラベルとから、出力層の誤差のベクトルΔbを計算する(ステップS7)。本実施の形態においては、図7に示すように、太線で囲まれた部分に含まれるノードが出力層のノードであるので、これらのノードの値とラベルとに基づき誤差のベクトルΔbが計算される。
なお、ステップS1乃至S7の処理は一般的なDNNの計算と同じであるので、ここでは詳細な説明を省略する。
算出部105は、予め定められた確率p(例えば0.5)に従って、チャネル1c乃至kcのうちブロックドロップアウトの対象となるチャネルを選択する。例えばチャネルの数が10であり且つ確率pが0.5である場合には、各チャネルがブロックドロップアウトの対象となる確率が0.5であるので、平均的には5つのチャネルが選択されることになる。そして、算出部105は、選択したチャネルの最終特徴層について、ブロックドロップアウトを実行する(ステップS9)。
ドロップアウトとは、フィードフォワードの際、対象となるノードの値を0に置き換える処理であり、DNNにおける過学習の問題を解決するために利用される。特に、ドロップアウトの一種であるブロックドロップアウトは、各学習機会において、チャネルにおける最終特徴層の全ノードの値を0に置き換える処理である。ブロックドロップアウトにおいては、最終特徴層の全ノードの値が0に置き換えられるため、学習の際に影響がチャネル内の全ノードに及ぶことになる。一方で、単純に1つのノードの値を0に置き換えるドロップアウトの場合、ドロップアウトが実行されていない他のノードによりその影響が緩和される。なお、ブロックドロップアウトの詳細については、非特許文献1を参照のこと。
図8を用いて、ブロックドロップアウトについて説明する。図8においては、ハッチングが付されたノードがドロップアウトが実行されたノード(すなわち、値が0に置き換えられたノード)であり、破線のエッジはドロップアウトの影響が及ぶエッジである。
算出部105は、ブロックドロップアウト後の最終特徴層のベクトルと、パラメタ格納部104に格納されている、最終特徴層と出力層とをつなぐ重み行列とから、出力層のベクトルを計算し(ステップS11)、出力層のベクトルを計算結果格納部103に格納する。ブロックドロップアウト後の最終特徴層のベクトルは、例えば、最終特徴層のベクトルの要素のうちブロックドロップアウトの対象となったチャネルにおけるノードに対応する要素が0に置き換えられたベクトルである。
算出部105は、S11において計算された出力層のベクトルと、ラベルデータ格納部102に格納されたラベルとから、出力層の誤差のベクトルΔaを計算する(ステップS13)。処理は端子Aを介して図10のステップS15に移行する。本実施の形態においては、図9に示すように、太線で囲まれた部分に含まれるノードが出力層のノードであるので、これらのノードの値とラベルとに基づき誤差のベクトルΔaが計算される。ステップS13までの処理によって、ブロックドロップアウトを実行した場合の出力誤差と実行しない場合の出力誤差とが同一の入力データについて求められる。
図10の説明に移行し、算出部105は、ブロックドロップアウトを実行した場合の出力層の誤差のベクトルΔaから誤差eaを算出し、ブロックドロップアウトを実行しない場合の出力層の誤差のベクトルΔbから誤差ebを算出する。誤差ea及び誤差ebは、例えば、ベクトルの要素の平均二乗誤差によって算出される。そして、算出部105は、ea−eb>tが成立するか判定する(図10:ステップS15)。tは予め定められた閾値であり、管理者により設定される。
a−eb>tが成立する場合(ステップS15:Yesルート)、ブロックドロップアウトをしたことにより誤差が大きくなったので、ブロックドロップアウトの対象であるチャネルについては学習が適切に進んでいると考えられる。従って、算出部105は、第1学習処理部106に処理の実行を指示する。これに応じ、第1学習処理部106は、第1学習処理を実行する(ステップS17)。第1学習処理については、図11乃至図14を用いて説明する。
まず、第1学習処理部106は、計算結果格納部103に格納されているデータ及びパラメタ格納部104に格納されているパラメタ(例えば、重み行列)を読み出す。そして、第1学習処理部106は、確率p(例えば0.5)に従って出力層のノードのうちドロップアウトの対象となるノードを選択する。そして、第1学習処理部106は、選択したノードの誤差に0を設定する(図11:ステップS31)。例えば出力層のノードの数が10であり且つ確率pが0.5である場合には、各ノードがドロップアウトの対象となる確率が0.5であるので、平均的には5つのノードの誤差に0が設定されることになる。本実施の形態においては、ステップS31のように出力層のノードの誤差を0に置き換える処理のことをバックドロップアウトと呼ぶこととする。
図12を用いて、バックドロップアウトについて説明する。図12においては、出力層のノードのうちハッチングが付されたノードがドロップアウトの対象となったノードである。破線のエッジは、ドロップアウトの影響が及ぶエッジである。このように、学習機会ごとに確率的に選択した出力の誤差についてドロップアウトを行うことで、その出力に影響を及ぼさないチャネルの学習を、そのチャネルが影響を及ぼす出力の誤差に基づいてより強く行うことができるようになる。これにより、分類の精度を向上させることができるようになる。
第1学習処理部106は、ステップS9におけるブロックドロップアウトの対象ではないチャネルのうち未処理のチャネルが有るか判定する(ステップS33)。ブロックドロップアウトの対象ではないチャネルのうち未処理のチャネルが有る場合(ステップS33:Yesルート)、第1学習処理部106は、ブロックドロップアウトの対象ではないチャネルのうち未処理のチャネルを1つ特定する(ステップS35)。
第1学習処理部106は、ステップS35において特定したチャネルについて、最終特徴層と出力層とをつなぐ重み行列の誤差を計算する(ステップS37)。
ステップS37の計算は、誤差逆伝播法の計算に基づいている。誤差逆伝播法とは、更新前のパラメタによって計算した出力層の値とラベルとの誤差を、ひとつ前の層のユニットに均等に配分して更新を行う方法である。この方法は、誤差の原因が各ユニットに同程度存在するという仮定に基づいている。説明を簡単にするため、最終特徴層と出力層とが直接つながっているものとし、最終特徴層のベクトルをv、最終特徴層と出力層とをつなぐ重み行列をW、出力層の値ベクトルをaとする。この場合、以下の関係が成立する。
Figure 0006610278
従って、重み行列の誤差ΔWを以下のように計算することができる。
Figure 0006610278
よって、W−ΔWを計算することで更新後のWを求めることができるようになる。
第1学習処理部106は、ステップS37において計算した重み行列の誤差ΔWに基づき、ステップS35において特定したチャネルの最終特徴層の誤差を計算する(ステップS39)。ステップS37の処理は一般的な誤差逆伝播法の処理の一部であるので、詳細な説明を省略する。
第1学習処理部106は、ステップS35において特定したチャネルについて、ステップS39において計算した最終特徴層の誤差に基づく誤差逆伝播法によって、各層について重み行列の誤差ΔWを計算する(ステップS41)。ステップS41の処理も一般的な誤差逆伝播法の処理であり、また、ステップS37において簡単に説明を行ったので、詳細な説明を省略する。
第1学習処理部106は、ステップS37及びS41において計算した重み行列の誤差ΔWを用いて、重み行列WをW−ΔWによって更新する(ステップS43)。第1学習処理部106は、更新後の重み行列Wによって、パラメタ格納部104に格納されている重み行列Wを更新する。そしてステップS33の処理に戻る。なお、最終特徴層と出力層とをつなぐ重み行列Wは、ステップS39において更新されてもよい。
一方、ブロックドロップアウトの対象ではないチャネルのうち未処理のチャネルがない場合(ステップS33:Noルート)、呼び出し元の処理に戻る。
図13及び図14を用いて、第1の学習処理について説明を追加する。第1学習処理においては、ブロックドロップアウトの対象ではないチャネルの最終特徴層と出力層とをつなぐ重み行列の誤差ΔWが算出される。そして、図13に示すように、算出されたΔWによって最終特徴層と出力層とをつなぐ重み行列Wの学習が行われるようになる。さらに、誤差逆伝播法によって、ブロックドロップアウトの対象ではないチャネルの各層について重み行列の誤差ΔWが計算される。そして、図14に示すように、算出されたΔWによってチャネルにおける各層の重み行列Wの学習が行われるようになる。なお、実際にはバックドロップアウトも実行されるため、出力層のノードの一部にドロップアウトが実行されているが、説明を簡単にするため、図13及び図14においては出力層のノードに対するドロップアウトを図示していない。以下の図においても同様とする。
このように、ブロックドロップアウトの対象であるチャネルについては学習が適切に進んでいると考えられる場合には、ブロックドロップアウトの対象であるチャネルについて学習を行わず、ブロックドロップアウトの対象ではないチャネルについて通常の誤差逆伝播法によって学習を行う。この理由は、既に適切に学習が進んでいるチャネルについて学習をさらに行うと、現状よりも学習が良くない方向に進み、分類精度が落ちることがあるからである。
図10の説明に戻り、ea−eb>tが成立しない場合(ステップS15:Noルート)、算出部105は、|ea−eb|<tが成立するか判定する(ステップS19)。|ea−eb|<tが成立する場合(ステップS19:Yesルート)、ブロックドロップアウトの対象であるチャネルの学習が適切に進んでいないためにブロックドロップアウトの影響が小さくなっている可能性がある。学習は適切に進んでいるが元々出力に及ぼす影響が小さいという可能性もあるが、学習を進めなければ前者の場合に学習が進まないままになる。従って、算出部105は、第2学習処理部107に処理の実行を指示する。これに応じ、第2学習処理部107は、第2学習処理を実行する(ステップS21)。第2学習処理については、図15乃至図20を用いて説明する。
まず、第2学習処理部107は、計算結果格納部103に格納されているデータ及びパラメタ格納部104に格納されているパラメタ(例えば、重み行列)を読み出す。そして、第2学習処理部107は、確率p(例えば0.5)に従って出力層のノードのうちドロップアウトの対象となるノードを選択する。そして、第2学習処理部107は、選択したノードの誤差に0を設定する(図15:ステップS51)。すなわち、第2学習処理部107は、バックドロップアウトを実行する。
第2学習処理部107は、ステップS9におけるブロックドロップアウトの対象ではないチャネルのうち未処理のチャネルが有るか判定する(ステップS53)。ブロックドロップアウトの対象ではないチャネルのうち未処理のチャネルが有る場合(ステップS53:Yesルート)、第2学習処理部107は、ブロックドロップアウトの対象ではないチャネルのうち未処理のチャネルを1つ特定する(ステップS55)。
第2学習処理部107は、ステップS55において特定したチャネルについて、最終特徴層と出力層とをつなぐ重み行列の誤差ΔWを計算する(ステップS57)。
第2学習処理部107は、ステップS57において計算した重み行列の誤差ΔWに基づき、ステップS55において特定したチャネルの最終特徴層の誤差を計算する(ステップS59)。ステップS57の処理は一般的な誤差逆伝播法の処理の一部であるので、詳細な説明を省略する。
第2学習処理部107は、ステップS55において特定したチャネルについて、ステップS59において計算した最終特徴層の誤差に基づく誤差逆伝播法によって、各層について重み行列の誤差ΔWを計算する(ステップS61)。ステップS61の処理も一般的な誤差逆伝播法の処理の一部であるので、詳細な説明を省略する。
第2学習処理部107は、ステップS57及びS61において計算した重み行列の誤差ΔWを用いて、重み行列WをW−ΔWによって更新する(ステップS63)。第2学習処理部107は、更新後の重み行列Wによって、パラメタ格納部104に格納されている重み行列Wを更新する。そしてステップS53の処理に戻る。なお、最終特徴層と出力層とをつなぐ重み行列Wは、ステップS59において更新されてもよい。
一方、ブロックドロップアウトの対象ではないチャネルのうち未処理のチャネルがない場合(ステップS53:Noルート)、処理は端子Cを介して図16の説明に移行する。
なお、ステップS51乃至S63の処理はステップS31乃至S43の処理と同様である。
図16の説明に移行し、第2学習処理部107は、出力層の誤差のベクトルΔaの要素の平均daを算出し、誤差Δaの各要素に、0からdaの範囲内の乱数を設定する(図16:ステップS65)。設定後の出力層の誤差のベクトルをΔdaとする。
図17及び図18を用いて、ステップS65の処理について説明する。図17及び図18においては、チャネル1cがステップS9のブロックドロップアウトの対象であるとする。太線で囲まれたノードは出力層のノードである。図17に示すように、出力層の誤差の値の平均がdaに相当する。但し、daが最大或いは平均二乗平方根誤差等によって求められてもよい。そして、図18に示すように、出力層の誤差ベクトルΔaの各要素は、0からdaまでの範囲内における乱数に設定される。学習が悪い状態に陥っている可能性がある場合には、このような乱数を設定することにより、学習が悪い状態から脱して学習が進むようになることがある。
第2学習処理部107は、ステップS9におけるブロックドロップアウトの対象であるチャネルのうち未処理のチャネルが有るか判定する(ステップS67)。ブロックドロップアウトの対象であるチャネルのうち未処理のチャネルが有る場合(ステップS67:Yesルート)、第2学習処理部107は、ブロックドロップアウトの対象であるチャネルのうち未処理のチャネルを1つ特定する(ステップS69)。
第2学習処理部107は、ステップS69において特定したチャネルについて、最終特徴層と出力層とをつなぐ重み行列の誤差ΔWを、出力層の誤差としてΔdaを使用する計算方法によって計算する(ステップS71)。ステップS71においては、誤差逆伝播法に基づき以下の計算式によって計算が行われる。
Figure 0006610278
ここで、iは層を表す番号であり、ステップS71の処理においてはiとして最終特徴層の番号が設定される。viは第i層の値ベクトルであり、ΔWiは第i層と第(i+1)層とをつなぐ重み行列の誤差ΔWである。
第2学習処理部107は、ステップS71において計算した重み行列の誤差ΔWに基づき、ステップS69において特定したチャネルの最終特徴層の誤差を計算する(ステップS73)。ステップS71の処理は一般的な誤差逆伝播法の処理の一部であるので、詳細な説明を省略する。
第2学習処理部107は、ステップS69において特定したチャネルについて、ステップS73において計算した最終特徴層の誤差に基づく誤差逆伝播法によって、各層について重み行列の誤差ΔWを計算する(ステップS75)。ステップS75の処理も一般的な誤差逆伝播法の処理であるので、詳細な説明を省略する。
第2学習処理部107は、ステップS71及びS75において計算した重み行列の誤差ΔWを用いて、重み行列WをW−ΔWによって更新する(ステップS77)。第2学習処理部107は、更新後の重み行列Wによって、パラメタ格納部104に格納されている重み行列を更新する。そしてステップS67の処理に戻る。なお、最終特徴層と出力層とをつなぐ重み行列Wは、ステップS73において更新されてもよい。
一方、ブロックドロップアウトの対象であるチャネルのうち未処理のチャネルがない場合(ステップS67:Noルート)、呼び出し元の処理に戻る。
図19及び図20を用いて、第2の学習処理のうちブロックドロップアウトの対象であるチャネルのパラメタを更新する処理について説明を追加する。第2学習処理においては、ブロックドロップアウトの対象であるチャネルの最終特徴層と出力層とをつなぐ重み行列の誤差ΔWが、Δdaを用いて算出される。そして、図19に示すように、算出されたΔWによって最終特徴層と出力層とをつなぐ重み行列Wの学習が行われるようになる。さらに、誤差逆伝播法によって、ブロックドロップアウトの対象であるチャネルの各層について重み行列の誤差ΔWが計算される。そして、図20に示すように、算出されたΔWによってチャネルにおける各層の重み行列Wの学習が行われるようになる。
以上のように、ブロックドロップアウトの対象であるチャネルの学習が適切に進んでいないためにブロックドロップアウトの影響が小さくなっている可能性がある場合には、ブロックドロップアウトの対象ではないチャネルだけではなく、ブロックドロップアウトの対象であるチャネルについても学習を行う。これにより、ブロックドロップアウトの対象であるチャネルの学習が進むので、分類の精度をより高めることができるようになる。
図10の説明に戻り、|ea−eb|<tが成立しない場合(ステップS19:Noルート)、算出部105は、eb−ea>tが成立するか判定する(ステップS23)。eb−ea>tが成立しない場合(ステップS23:Noルート)、ステップS27の処理に移行する。一方、eb−ea>tが成立する場合(ステップS23:Yesルート)、ブロックドロップアウトの対象であるチャネルの学習は適切に進んでいないと考えられる。従って、算出部105は、第3学習処理部108に処理の実行を指示する。これに応じ、第3学習処理部108は、第3学習処理を実行する(ステップS25)。第3学習処理については、図21乃至図25を用いて説明する。
まず、第3学習処理部108は、計算結果格納部103に格納されているデータ及びパラメタ格納部104に格納されているパラメタ(例えば、重み行列)を読み出す。そして、第3学習処理部108は、確率p(例えば0.5)に従って出力層のノードのうちドロップアウトの対象となるノードを選択する。そして、第3学習処理部108は、選択したノードの誤差に0を設定する(図21:ステップS81)。すなわち、第3学習処理部108は、バックドロップアウトを実行する。
第3学習処理部108は、ステップS9におけるブロックドロップアウトの対象であるチャネルのうち未処理のチャネルが有るか判定する(ステップS83)。ブロックドロップアウトの対象であるチャネルのうち未処理のチャネルが有る場合(ステップS83:Yesルート)、第3学習処理部108は、ブロックドロップアウトの対象であるチャネルのうち未処理のチャネルを1つ特定する(ステップS85)。
第3学習処理部108は、ステップS85において特定したチャネルについて、最終特徴層と出力層とをつなぐ重み行列の誤差ΔWを、最終特徴層のベクトルとして(v−vチルダ)を使用し且つ出力層の誤差としてΔbを使用する計算方法で計算する(ステップS87)。ステップS87においては、誤差逆伝播法に基づき以下の計算式によって計算が行われる。
Figure 0006610278
ここで、vはブロックドロップアウトを実行しない場合の最終特徴層のベクトルであり、vチルダはブロックドロップアウトを実行した場合の最終特徴層のベクトルである。図22及び図23を用いて、v及びvチルダについて説明する。vはブロックドロップアウトを実行しない場合の最終特徴層のベクトルであるので、図22に示すように、太線で囲まれた部分に含まれるノードの値を要素とするベクトルである。一方、vチルダはブロックドロップアウトを実行した場合の最終特徴層のベクトルであるので、図23に示すように、太線で囲まれた部分に含まれるノードの値を要素とするベクトルであるが、ブロックドロップアウトの対象であるチャネルに含まれるノードの値が0に置換されている。
第3学習処理部108は、ステップS87において計算した重み行列の誤差ΔWに基づき、ステップS85において特定したチャネルの最終特徴層の誤差を計算する(ステップS89)。ステップS87の処理は一般的な誤差逆伝播法の処理の一部であるので、詳細な説明を省略する。
第3学習処理部108は、ステップS85において特定したチャネルについて、ステップS89において計算した最終特徴層の誤差に基づく誤差逆伝播法によって、各層について重み行列の誤差ΔWを計算する(ステップS91)。ステップS91の処理も一般的な誤差逆伝播法の処理であるので、詳細な説明を省略する。
第3学習処理部108は、ステップS87及びS91において計算した重み行列の誤差ΔWを用いて、重み行列WをW−ΔWによって更新する(ステップS93)。第3学習処理部108は、更新後の重み行列Wによって、パラメタ格納部104に格納されている重み行列Wを更新する。そしてステップS83の処理に戻る。なお、最終特徴層と出力層とをつなぐ重み行列Wは、ステップS89において更新されてもよい。
一方、ブロックドロップアウトの対象であるチャネルのうち未処理のチャネルがない場合(ステップS83:Noルート)、呼び出し元の処理に戻る。
図24及び図25を用いて、第3の学習処理について説明を追加する。第3学習処理においては、ブロックドロップアウトの対象であるチャネルの最終特徴層と出力層とをつなぐ重み行列の誤差ΔWが、(v−vチルダ)及びΔbを用いて算出される。そして、図24に示すように、算出されたΔWによって最終特徴層と出力層とをつなぐ重み行列Wの学習が行われるようになる。さらに、誤差逆伝播法によって、ブロックドロップアウトの対象であるチャネルの各層について重み行列の誤差ΔWが計算される。そして、図25に示すように、算出されたΔWによってチャネルにおける各層の重み行列Wの学習が行われるようになる。
以上のように、ブロックドロップアウトの対象であるチャネルの学習は適切に進んでいないと考えられる場合には、ブロックドロップアウトの対象であるチャネルについてのみ学習を行う。
図10の説明に戻り、算出部105は、処理を終了するか判定する(ステップS27)。処理を終了する場合とは、例えば、入力データ格納部101に未処理の入力データが格納されていない場合である。処理を終了しない場合(ステップS27:Noルート)、処理は端子Bを介して図6のステップS1に戻る。それ以外の場合、処理を終了する(ステップS27:Yesルート)。
図26を用いて、分類精度の向上について説明する。図26には、実際にDNNによってデータを分類した場合の正答率が示されている。この分類においては、3種類の時系列データが用いられ、層の数並びに畳み込み層及びプーリング層の条件は各分類機会において同一であるとする。従来のブロックドロップアウトとは、ブロックアウトの対象であるチャネルのパラメタを更新しないことを意味する。本実施の形態のブロックアウトとは、ブロックアウトを実行した場合の出力誤差とブロックアウトを実行しない場合の出力誤差との差に基づいていずれのチャネルのパラメタを更新するか決定することを意味する。
図26に示すように、ブロックドロップアウトを実行しない場合及び従来のブロックドロップアウトを実行する場合よりも、本実施の形態のブロックドロップアウトを実行する方が正答率が高い。また、バックドロップアウトを実行した場合、バックドロップアウトを実行しない場合よりも正答率が高い。従って、本実施の形態のように学習を行うことで、並列型DNNによる分類の精度を高めることができるようになる。
[実施の形態2]
第1の実施の形態の第2学習処理においては出力層の誤差の値を乱数で置換しているが、他の部分を乱数で置換してもよい。例えば、チャネルlc(lは1≦l≦kを満たす自然数)における第p層(pは1以上の自然数)と第(p+1)層とをつなぐ重み行列をWl pと表すとする。このとき、図27に示すように、Wl pの各要素を0から予め定められた値までの範囲内における乱数に置換した重み行列であるWl pチルダに置き換えてもよい。このような方法であっても、第1の実施の形態と同様、ブロックドロップアウトの対象であるチャネルについて学習を進めることができるようになる。
なお、乱数の範囲は層毎に異なっていてもよい。
[実施の形態3]
第2の実施の形態の第2学習処理においては、重み行列Wl pを乱数の行列に置き換えているが、重み行列の誤差を乱数の行列に置き換えてもよい。例えば、重み行列Wl pの誤差の行列Wl pバーの各要素を、0から予め定められた値までの範囲内における乱数に置換してもよい。このとき、図28に示すように、Wl pを、Wl p−Wl pバーで更新してもよい。このような方法であっても、第1及び第2の実施の形態と同様、ブロックドロップアウトの対象であるチャネルについて学習を進めることができるようになる。
なお、乱数の範囲は層毎に異なっていてもよい。
[実施の形態4]
第1の実施の形態の第3学習処理においては、ブロックドロップアウトの対象であるチャネル(ここでは、チャネル1cとする)について学習を行い、ブロックドロップアウトの対象ではないチャネル(ここでは、チャネル2c乃至kcとする)については学習を行わない。これは、図29に示すように、ブロックドロップアウトの対象であるチャネルがチャネル2c乃至kcとし、通常どおりブロックドロップアウトの対象ではないチャネル1cについて学習を行うことと同等である。よって、|ea−eb|<tが成立する場合には、ブロックドロップアウトの対象となるチャネルの選択を逆にしてもよい。
[実施の形態5]
第4の実施の形態においては、|ea−eb|<tが成立する場合にブロックドロップアウトの対象となるチャネルの選択を逆にしているが、学習を全く行わず、次の入力データの処理に移行してもよい。このようにすれば、ブロックドロップアウトの対象ではないチャネル(ここでは、チャネル2c乃至kcとする)について学習が行われることを防ぐことができる。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した情報処理装置1の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
また、上で説明したデータ構造は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
また、入力データ格納部101に格納されているデータは、上で述べたようなデータでなくてもよい。
なお、上で述べた情報処理装置1は、コンピュータ装置であって、図30に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態に係る機械学習方法は、(A)並列型ニューラルネットワークにおける複数のチャネルのうち第1のチャネルの最終層の値に対して0で置換する処理であるドロップアウトを実行した場合の出力と、ラベルとの誤差である第1の出力誤差を算出し、(B)第1のチャネルの最終層の値に対してドロップアウトを実行しない場合の出力と、ラベルとの誤差である第2の出力誤差を算出し、(C)第1の出力誤差と第2の出力誤差との差に基づき、複数のチャネルから1又は複数のチャネルを特定し、特定した1又は複数のチャネルのパラメタを更新する処理を含む。
第1の出力誤差と第2の出力誤差との差に着目すれば、どのチャネルのパラメタを更新すればよいか判定できる。従って、上で述べたような処理を実行することによって、適切なチャネルのパラメタが更新されるようになり、並列型ニューラルネットワークの分類精度を高めることができるようになる。
また、本機械学習方法は、(D)出力層の値の少なくともひとつに対してドロップアウトを実行する処理をさらに含んでもよい。0で置換された値に影響を与えないチャネルの学習を、そのチャネルが影響を与える値に基づいてより強く行うことができるので、分類の精度を高めることができるようになる。
また、1又は複数のチャネルのパラメタを更新する処理において、(c1)第1の出力誤差から第2の出力誤差を差し引いた値が閾値より大きい場合、第1のチャネル以外のチャネルである第2のチャネルのパラメタについて第1の更新処理を実行し、(c2)第1の出力誤差から第2の出力誤差を差し引いた値の絶対値が閾値以下である場合、第1のチャネルのパラメタ及び第2のチャネルのパラメタについて第2の更新処理を実行し、(c3)第2の出力誤差から第1の出力誤差を差し引いた値が閾値より大きい場合、第1のチャネルのパラメタについて第3の更新処理を実行してもよい。第1の出力誤差から第2の出力誤差を差し引いた値が閾値より大きい場合、ドロップアウトをしたことにより誤差が大きくなったので、第1のチャネルについては学習が適切に進んでいると考えられる。一方、第1の出力誤差から第2の出力誤差を差し引いた値の絶対値が閾値以下である場合、第1のチャネルの学習が適切に進んでいないためにドロップアウトの影響が小さくなっている可能性がある。また、第2の出力誤差から第1の出力誤差を差し引いた値が閾値より大きい場合、ドロップアウトをしたことにより誤差が小さくなったので、第1のチャネルの学習は適切に進んでいないと考えられる。従って、上で述べたようにすれば、適切なチャネルのパラメタが更新されるようになる。
また、第2の更新処理において、(c211)第1の出力誤差と、第1及び第2のチャネルの最終層の値とから、第1及び第2のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差である第1の誤差を算出し、(c212)第1の誤差に基づき、誤差逆伝播法によって、第2のチャネルのパラメタを更新し、(c213)所定の方法で求められた範囲における乱数の値と、第1及び第2のチャネルの最終層の値とから、第1及び第2のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差である第2の誤差を算出し、(c214)第2の誤差に基づき、誤差逆伝播法によって、第1のチャネルのパラメタを更新してもよい。これにより、第2のチャネルについては通常の方法で学習を進めることができると共に、第1のチャネルについての学習をも進めることができるようになる。
また、第2の更新処理において、(c221)第1の出力誤差と、第1及び第2のチャネルの最終層の値とから、第1及び第2のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差である第1の誤差を算出し、(c222)第1の誤差に基づき、誤差逆伝播法によって、第2のチャネルのパラメタを更新し、(c223)第1のチャネルの最終層の値から出力層の値を算出するためのパラメタと、第1のチャネルのパラメタとを、乱数で置換してもよい。これにより、第2のチャネルについては通常の方法で学習を進めることができると共に、第1のチャネルについての学習をも進めることができるようになる。
また、第2の更新処理において、(c231)第1の出力誤差と、第1及び第2のチャネルの最終層の値とから、第1及び第2のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差である第1の誤差を算出し、(c232)第1の誤差に基づき、誤差逆伝播法によって、第2のチャネルのパラメタを更新し、(c233)第1のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差と、第1のチャネルのパラメタの誤差とを、乱数で置換し、(c234)置換された第1のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差と、置換された第1のチャネルのパラメタの誤差とによって、第1のチャネルの最終層の値から出力層の値を算出するためのパラメタと第1のチャネルのパラメタとを更新してもよい。これにより、第2のチャネルについては通常の方法で学習を進めることができると共に、第1のチャネルについての学習をも進めることができるようになる。
また、第3の更新処理において、(c311)第2の出力誤差と、第1のチャネルの最終層の値及びドロップアウトが実行された第2のチャネルの最終層の値とから、当該最終層の値から出力層の値を算出するためのパラメタの誤差である第1の誤差を算出し、(c312)第1の誤差に基づき、誤差逆伝播法によって、第1のチャネルのパラメタを更新してもよい。これにより、第1のチャネルの学習を進めることができると共に、第2のチャネルについての学習が行われることを防ぐことができるようになる。
また、第3の更新処理において、(c321)第1のチャネルのパラメタを維持してもよい。そして、本機械学習方法は、(E)第1のチャネルの最終層の値に対してドロップアウトを実行せず且つ第2のチャネルの最終層の値に対してドロップアウトを実行した場合の出力を計算する処理をさらに含んでもよい。これにより、ドロップアウトされるチャネルを入れ替えたうえで学習を進めることができるようになる。
また、第3の更新処理において、(c321)第1のチャネルのパラメタを維持し、(c322)次の入力に対する処理を開始してもよい。これにより、いずれのチャネルについても学習を行うことなく次の入力に対する処理を開始できるようになる。
また、第1の更新処理において、(c111)第1の出力誤差と、第1及び第2のチャネルの最終層の値とから、第1及び第2のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差である第1の誤差を算出し、(c112)第1の誤差に基づき、誤差逆伝播法によって、第2のチャネルのパラメタを更新してもよい。これにより、第2のチャネルについて通常の方法で学習を進めることができるようになる。
なお、上記方法による処理をコンピュータに実行させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
コンピュータに、
並列型ニューラルネットワークにおける複数のチャネルのうち第1のチャネルの最終層の値に対して0で置換する処理であるドロップアウトを実行した場合の出力と、ラベルとの誤差である第1の出力誤差を算出し、
前記第1のチャネルの最終層の値に対して前記ドロップアウトを実行しない場合の出力と、前記ラベルとの誤差である第2の出力誤差を算出し、
前記第1の出力誤差と前記第2の出力誤差との差に基づき、前記複数のチャネルから1又は複数のチャネルを特定し、特定した前記1又は複数のチャネルのパラメタを更新する、
処理を実行させる機械学習プログラム。
(付記2)
前記コンピュータに、
出力層の値の少なくともひとつに対して前記ドロップアウトを実行する、
処理をさらに実行させる付記1記載の機械学習プログラム。
(付記3)
前記1又は複数のチャネルのパラメタを更新する処理において、
前記第1の出力誤差から前記第2の出力誤差を差し引いた値が閾値より大きい場合、前記第1のチャネル以外のチャネルである第2のチャネルのパラメタについて第1の更新処理を実行し、
前記第1の出力誤差から前記第2の出力誤差を差し引いた値の絶対値が前記閾値以下である場合、前記第1のチャネルのパラメタ及び前記第2のチャネルのパラメタについて第2の更新処理を実行し、
前記第2の出力誤差から前記第1の出力誤差を差し引いた値が前記閾値より大きい場合、前記第1のチャネルのパラメタについて第3の更新処理を実行する、
付記1又は2記載の機械学習プログラム。
(付記4)
前記第2の更新処理において、
前記第1の出力誤差と、前記第1及び第2のチャネルの最終層の値とから、前記第1及び第2のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差である第1の誤差を算出し、
前記第1の誤差に基づき、誤差逆伝播法によって、前記第2のチャネルのパラメタを更新し、
所定の方法で求められた範囲における乱数の値と、前記第1及び第2のチャネルの最終層の値とから、前記第1及び第2のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差である第2の誤差を算出し、
前記第2の誤差に基づき、誤差逆伝播法によって、前記第1のチャネルのパラメタを更新する、
付記3記載の機械学習プログラム。
(付記5)
前記第2の更新処理において、
前記第1の出力誤差と、前記第1及び第2のチャネルの最終層の値とから、前記第1及び第2のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差である第1の誤差を算出し、
前記第1の誤差に基づき、誤差逆伝播法によって、前記第2のチャネルのパラメタを更新し、
前記第1のチャネルの最終層の値から出力層の値を算出するためのパラメタと、前記第1のチャネルのパラメタとを、乱数で置換する、
付記3記載の機械学習プログラム。
(付記6)
前記第2の更新処理において、
前記第1の出力誤差と、前記第1及び第2のチャネルの最終層の値とから、前記第1及び第2のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差である第1の誤差を算出し、
前記第1の誤差に基づき、誤差逆伝播法によって、前記第2のチャネルのパラメタを更新し、
前記第1のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差と、前記第1のチャネルのパラメタの誤差とを、乱数で置換し、
置換された前記第1のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差と、置換された前記第1のチャネルのパラメタの誤差とによって、前記第1のチャネルの最終層の値から出力層の値を算出するためのパラメタと前記第1のチャネルのパラメタとを更新する、
付記3記載の機械学習プログラム。
(付記7)
前記第3の更新処理において、
前記第2の出力誤差と、前記第1のチャネルの最終層の値及び前記ドロップアウトが実行された前記第2のチャネルの最終層の値とから、当該最終層の値から出力層の値を算出するためのパラメタの誤差である第1の誤差を算出し、
前記第1の誤差に基づき、誤差逆伝播法によって、前記第1のチャネルのパラメタを更新する、
付記3記載の機械学習プログラム。
(付記8)
前記第3の更新処理において、
前記第1のチャネルのパラメタを維持し、
前記コンピュータに、
前記第1のチャネルの最終層の値に対して前記ドロップアウトを実行せず且つ前記第2のチャネルの最終層の値に対して前記ドロップアウトを実行した場合の出力を計算する、
処理をさらに実行させる付記3記載の機械学習プログラム。
(付記9)
前記第3の更新処理において、
前記第1のチャネルのパラメタを維持し、
前記コンピュータに、
次の入力に対する処理を開始する、
処理をさらに実行させる付記3記載の機械学習プログラム。
(付記10)
前記第1の更新処理において、
前記第1の出力誤差と、前記第1及び第2のチャネルの最終層の値とから、前記第1及び第2のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差である第1の誤差を算出し、
前記第1の誤差に基づき、誤差逆伝播法によって、前記第2のチャネルのパラメタを更新する、
付記3記載の機械学習プログラム。
(付記11)
コンピュータが、
並列型ニューラルネットワークにおける複数のチャネルのうち第1のチャネルの最終層の値に対して0で置換する処理であるドロップアウトを実行した場合の出力と、ラベルとの誤差である第1の出力誤差を算出し、
前記第1のチャネルの最終層の値に対して前記ドロップアウトを実行しない場合の出力と、前記ラベルとの誤差である第2の出力誤差を算出し、
前記第1の出力誤差と前記第2の出力誤差との差に基づき、前記複数のチャネルから1又は複数のチャネルを特定し、特定した前記1又は複数のチャネルのパラメタを更新する、
処理を実行する機械学習方法。
(付記12)
並列型ニューラルネットワークにおける複数のチャネルのうち第1のチャネルの最終層の値に対して0で置換する処理であるドロップアウトを実行した場合の出力と、ラベルとの誤差である第1の出力誤差を算出し、前記第1のチャネルの最終層の値に対して前記ドロップアウトを実行しない場合の出力と、前記ラベルとの誤差である第2の出力誤差を算出する算出部と、
前記第1の出力誤差と前記第2の出力誤差との差に基づき、前記複数のチャネルから1又は複数のチャネルを特定し、特定した前記1又は複数のチャネルのパラメタを更新する更新部と、
を有する機械学習装置。
1 情報処理装置 101 入力データ格納部
102 ラベルデータ格納部 103 計算結果格納部
104 パラメタ格納部 105 算出部
106 第1学習処理部 107 第2学習処理部
108 第3学習処理部

Claims (12)

  1. コンピュータに、
    並列型ニューラルネットワークにおける複数のチャネルのうち第1のチャネルの最終層の値に対して0で置換する処理であるドロップアウトを実行した場合の出力と、ラベルとの誤差である第1の出力誤差を算出し、
    前記第1のチャネルの最終層の値に対して前記ドロップアウトを実行しない場合の出力と、前記ラベルとの誤差である第2の出力誤差を算出し、
    前記第1の出力誤差と前記第2の出力誤差との差に基づき、前記複数のチャネルから1又は複数のチャネルを特定し、特定した前記1又は複数のチャネルのパラメタを更新する、
    処理を実行させる機械学習プログラム。
  2. 前記コンピュータに、
    出力層の値の少なくともひとつに対して前記ドロップアウトを実行する、
    処理をさらに実行させる請求項1記載の機械学習プログラム。
  3. 前記1又は複数のチャネルのパラメタを更新する処理において、
    前記第1の出力誤差から前記第2の出力誤差を差し引いた値が閾値より大きい場合、前記第1のチャネル以外のチャネルである第2のチャネルのパラメタについて第1の更新処理を実行し、
    前記第1の出力誤差から前記第2の出力誤差を差し引いた値の絶対値が前記閾値以下である場合、前記第1のチャネルのパラメタ及び前記第2のチャネルのパラメタについて第2の更新処理を実行し、
    前記第2の出力誤差から前記第1の出力誤差を差し引いた値が前記閾値より大きい場合、前記第1のチャネルのパラメタについて第3の更新処理を実行する、
    請求項1又は2記載の機械学習プログラム。
  4. 前記第2の更新処理において、
    前記第1の出力誤差と、前記第1及び第2のチャネルの最終層の値とから、前記第1及び第2のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差である第1の誤差を算出し、
    前記第1の誤差に基づき、誤差逆伝播法によって、前記第2のチャネルのパラメタを更新し、
    所定の方法で求められた範囲における乱数の値と、前記第1及び第2のチャネルの最終層の値とから、前記第1及び第2のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差である第2の誤差を算出し、
    前記第2の誤差に基づき、誤差逆伝播法によって、前記第1のチャネルのパラメタを更新する、
    請求項3記載の機械学習プログラム。
  5. 前記第2の更新処理において、
    前記第1の出力誤差と、前記第1及び第2のチャネルの最終層の値とから、前記第1及び第2のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差である第1の誤差を算出し、
    前記第1の誤差に基づき、誤差逆伝播法によって、前記第2のチャネルのパラメタを更新し、
    前記第1のチャネルの最終層の値から出力層の値を算出するためのパラメタと、前記第1のチャネルのパラメタとを、乱数で置換する、
    請求項3記載の機械学習プログラム。
  6. 前記第2の更新処理において、
    前記第1の出力誤差と、前記第1及び第2のチャネルの最終層の値とから、前記第1及び第2のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差である第1の誤差を算出し、
    前記第1の誤差に基づき、誤差逆伝播法によって、前記第2のチャネルのパラメタを更新し、
    前記第1のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差と、前記第1のチャネルのパラメタの誤差とを、乱数で置換し、
    置換された前記第1のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差と、置換された前記第1のチャネルのパラメタの誤差とによって、前記第1のチャネルの最終層の値から出力層の値を算出するためのパラメタと前記第1のチャネルのパラメタとを更新する、
    請求項3記載の機械学習プログラム。
  7. 前記第3の更新処理において、
    前記第2の出力誤差と、前記第1のチャネルの最終層の値及び前記ドロップアウトが実行された前記第2のチャネルの最終層の値とから、当該最終層の値から出力層の値を算出するためのパラメタの誤差である第1の誤差を算出し、
    前記第1の誤差に基づき、誤差逆伝播法によって、前記第1のチャネルのパラメタを更新する、
    請求項3記載の機械学習プログラム。
  8. 前記第3の更新処理において、
    前記第1のチャネルのパラメタを維持し、
    前記コンピュータに、
    前記第1のチャネルの最終層の値に対して前記ドロップアウトを実行せず且つ前記第2のチャネルの最終層の値に対して前記ドロップアウトを実行した場合の出力を計算する、
    処理をさらに実行させる請求項3記載の機械学習プログラム。
  9. 前記第3の更新処理において、
    前記第1のチャネルのパラメタを維持し、
    前記コンピュータに、
    次の入力に対する処理を開始する、
    処理をさらに実行させる請求項3記載の機械学習プログラム。
  10. 前記第1の更新処理において、
    前記第1の出力誤差と、前記第1及び第2のチャネルの最終層の値とから、前記第1及び第2のチャネルの最終層の値から出力層の値を算出するためのパラメタの誤差である第1の誤差を算出し、
    前記第1の誤差に基づき、誤差逆伝播法によって、前記第2のチャネルのパラメタを更新する、
    請求項3記載の機械学習プログラム。
  11. コンピュータが、
    並列型ニューラルネットワークにおける複数のチャネルのうち第1のチャネルの最終層の値に対して0で置換する処理であるドロップアウトを実行した場合の出力と、ラベルとの誤差である第1の出力誤差を算出し、
    前記第1のチャネルの最終層の値に対して前記ドロップアウトを実行しない場合の出力と、前記ラベルとの誤差である第2の出力誤差を算出し、
    前記第1の出力誤差と前記第2の出力誤差との差に基づき、前記複数のチャネルから1又は複数のチャネルを特定し、特定した前記1又は複数のチャネルのパラメタを更新する、
    処理を実行する機械学習方法。
  12. 並列型ニューラルネットワークにおける複数のチャネルのうち第1のチャネルの最終層の値に対して0で置換する処理であるドロップアウトを実行した場合の出力と、ラベルとの誤差である第1の出力誤差を算出し、前記第1のチャネルの最終層の値に対して前記ドロップアウトを実行しない場合の出力と、前記ラベルとの誤差である第2の出力誤差を算出する算出部と、
    前記第1の出力誤差と前記第2の出力誤差との差に基づき、前記複数のチャネルから1又は複数のチャネルを特定し、特定した前記1又は複数のチャネルのパラメタを更新する更新部と、
    を有する機械学習装置。
JP2016006808A 2016-01-18 2016-01-18 機械学習装置、機械学習方法及び機械学習プログラム Active JP6610278B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016006808A JP6610278B2 (ja) 2016-01-18 2016-01-18 機械学習装置、機械学習方法及び機械学習プログラム
US15/383,195 US10635975B2 (en) 2016-01-18 2016-12-19 Method and apparatus for machine learning

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016006808A JP6610278B2 (ja) 2016-01-18 2016-01-18 機械学習装置、機械学習方法及び機械学習プログラム

Publications (2)

Publication Number Publication Date
JP2017129896A JP2017129896A (ja) 2017-07-27
JP6610278B2 true JP6610278B2 (ja) 2019-11-27

Family

ID=59313892

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016006808A Active JP6610278B2 (ja) 2016-01-18 2016-01-18 機械学習装置、機械学習方法及び機械学習プログラム

Country Status (2)

Country Link
US (1) US10635975B2 (ja)
JP (1) JP6610278B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10157333B1 (en) 2015-09-15 2018-12-18 Snap Inc. Systems and methods for content tagging
US11468290B2 (en) * 2016-06-30 2022-10-11 Canon Kabushiki Kaisha Information processing apparatus, information processing method, and non-transitory computer-readable storage medium
US11334768B1 (en) 2016-07-05 2022-05-17 Snap Inc. Ephemeral content management
KR101863196B1 (ko) * 2017-07-24 2018-06-01 한국생산기술연구원 딥러닝 기반 표면 결함 검출장치 및 방법
CN107516075B (zh) * 2017-08-03 2020-10-09 安徽华米智能科技有限公司 心电信号的检测方法、装置及电子设备
EP3660690A4 (en) * 2017-11-30 2020-08-12 SZ DJI Technology Co., Ltd. CALCULATION UNIT, CALCULATION SYSTEM AND ORDERING PROCEDURE FOR CALCULATION UNIT
US11423284B2 (en) * 2018-09-07 2022-08-23 Black Sesame Technologies, Inc Subgraph tile fusion in a convolutional neural network
US11580403B2 (en) * 2018-10-04 2023-02-14 Rorry Brenner System, method, and computer program product for perforated backpropagation in an artificial neural network
US20220179321A1 (en) * 2019-03-25 2022-06-09 Asml Netherlands B.V. Method for determining pattern in a patterning process
US11610077B2 (en) * 2019-05-10 2023-03-21 Paypal, Inc. Systems and methods for integrated multi-factor multi-label analysis
JP7452990B2 (ja) 2019-11-29 2024-03-19 東京エレクトロン株式会社 異常検知装置、異常検知方法及び異常検知プログラム
JP7412150B2 (ja) 2019-11-29 2024-01-12 東京エレクトロン株式会社 予測装置、予測方法及び予測プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02100757A (ja) * 1988-10-07 1990-04-12 Ricoh Co Ltd 並列ニューラルネットワーク学習方式
JPH03246747A (ja) * 1990-02-26 1991-11-05 Fujitsu Ltd ネットワーク構成データ処理装置の学習処理方式
JPH0793160A (ja) * 1993-09-20 1995-04-07 Toshiba Corp 推論装置
JP3367214B2 (ja) * 1994-08-24 2003-01-14 株式会社日立製作所 ニューラルネット制御方法及び装置
US9811775B2 (en) 2012-12-24 2017-11-07 Google Inc. Parallelizing neural networks during training
US9406017B2 (en) 2012-12-24 2016-08-02 Google Inc. System and method for addressing overfitting in a neural network
GB201402736D0 (en) * 2013-07-26 2014-04-02 Isis Innovation Method of training a neural network
US10373054B2 (en) * 2015-04-19 2019-08-06 International Business Machines Corporation Annealed dropout training of neural networks

Also Published As

Publication number Publication date
JP2017129896A (ja) 2017-07-27
US10635975B2 (en) 2020-04-28
US20170206450A1 (en) 2017-07-20

Similar Documents

Publication Publication Date Title
JP6610278B2 (ja) 機械学習装置、機械学習方法及び機械学習プログラム
CN111126574B (zh) 基于内镜图像对机器学习模型进行训练的方法、装置和存储介质
US10949746B2 (en) Efficient parallel training of a network model on multiple graphics processing units
JP6635265B2 (ja) 予測装置、予測方法および予測プログラム
CN111523686B (zh) 一种模型联合训练的方法和系统
US20230196202A1 (en) System and method for automatic building of learning machines using learning machines
US11449734B2 (en) Neural network reduction device, neural network reduction method, and storage medium
CN111989696A (zh) 具有顺序学习任务的域中的可扩展持续学习的神经网络
JP2011243088A (ja) データ処理装置、データ処理方法、及び、プログラム
CN113128478B (zh) 模型训练方法、行人分析方法、装置、设备及存储介质
KR102036968B1 (ko) 전문화에 기반한 신뢰성 높은 딥러닝 앙상블 방법 및 장치
CN112101207B (zh) 一种目标跟踪方法、装置、电子设备及可读存储介质
CN111373418A (zh) 学习设备和学习方法、识别设备和识别方法、程序和记录介质
EP4343616A1 (en) Image classification method, model training method, device, storage medium, and computer program
JP7382633B2 (ja) 学習モデル構築装置、学習モデル構築方法及びコンピュータプログラム
CN111630530B (zh) 数据处理系统、数据处理方法和计算机可读存储介质
CN114792387A (zh) 图像恢复方法和设备
JP7021132B2 (ja) 学習装置、学習方法およびプログラム
WO2020065908A1 (ja) パターン認識装置、パターン認識方法およびパターン認識プログラム
US20230086727A1 (en) Method and information processing apparatus that perform transfer learning while suppressing occurrence of catastrophic forgetting
JP7413528B2 (ja) 学習済モデル生成システム、学習済モデル生成方法、情報処理装置、プログラム、および推定装置
KR102424538B1 (ko) 영상 복원 방법 및 장치
JP7055211B2 (ja) データ処理システムおよびデータ処理方法
CN116187473B (zh) 联邦学习方法、装置、电子设备和计算机可读存储介质
JP6942204B2 (ja) データ処理システムおよびデータ処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180912

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190830

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20191001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191014

R150 Certificate of patent or registration of utility model

Ref document number: 6610278

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150