【文献】
Joao Gama et al.,Learning with Drift Detection,Advances in Artificial Intelligence - SBIA 2004,Springer,2004年 9月29日,pp.286-295
(58)【調査した分野】(Int.Cl.,DB名)
コンボリューショナルニューラルネットワークを学習させるための機械学習装置により遂行される、コンボリューショナルニューラルネットワークに対する機械学習方法において、
対象データの入力を受ける段階;
前記コンボリューショナルニューラルネットワークに対する前記対象データの統計的特性と前記コンボリューショナルニューラルネットワークに対するあらかじめ使用された訓練データの統計的特性との差に基づいて、漸進的学習開始の可否を判断する段階;
前記漸進的学習を開始すると判断した場合、前記コンボリューショナルニューラルネットワークに含まれたそれぞれのコンボリューションレイヤーで相互間の類似度が高いカーネルの集合を決定する段階;および
前記相互間の類似度が高いカーネルの集合に含まれたカーネルが適用されるノード間の加重値を更新する段階;を含み、
前記相互間の類似度が高いカーネルの集合に含まれたカーネルのそれぞれをランダム行列を利用して、更新する段階をさらに含む、機械学習方法。
前記相互間の類似度が高いカーネルの集合を決定する段階は、同じノードのコンボリューション演算に利用されるカーネルからカーネル連結行列(Concatenated kernel matrix)を構成し、
前記カーネル連結行列間の距離または類似度を測定することによって、前記相互間の類似度が高いカーネル連結行列ペアを少なくとも一つ以上決定する、請求項1に記載の機械学習方法。
前記漸進的学習を開始すると判断した場合、前記コンボリューショナルニューラルネットワークに含まれたそれぞれの完全連結レイヤー(fully connected layer)で相互間の類似度が高いウェイトベクトル(Weight vector)の集合を決定する段階;および
前記相互間の類似度が高いウェイトベクトルの集合に含まれたウェイトベクトルが適用されるノード間の加重値を更新する段階;をさらに含む、請求項1に記載の機械学習方法。
前記相互間の類似度が高いウェイトベクトルの集合に含まれたウェイトベクトルのそれぞれを、ランダムベクトルを利用して更新する段階;をさらに含む、請求項8に記載の機械学習方法。
前記対称ニューラルネットワークは、前記コンボリューショナルニューラルネットワークの全体連結レイヤーに対応する逆方向の全体連結レイヤー(backward fully connected layer)と、前記コンボリューショナルニューラルネットワークのコンボリューションレイヤーおよびプーリングレイヤーに対応するデコンボリューションレイヤーおよびアンプーリングレイヤーを含む、請求項13に記載の機械学習方法。
【発明の概要】
【発明が解決しようとする課題】
【0007】
前記のような問題点を解決するための本発明の目的は、訓練データとは統計的特性が異なる対象データに対する予測性能を改善するために更新しなければならない人工ニューラルネットワークの一部のノードを識別する方法および装置を提供することである。
【課題を解決するための手段】
【0008】
一側面において、対象データの入力を受ける段階;前記コンボリューショナルニューラルネットワークに対する前記対象データの統計的特性と前記コンボリューショナルニューラルネットワークに対するあらかじめ使用された訓練データの統計的特性との差に基づいて、漸進的学習開始の可否を判断する段階;前記漸進的学習を開始すると判断した場合、前記コンボリューショナルニューラルネットワークに含まれたそれぞれのコンボリューションレイヤーで相互間の類似度が高いカーネルの集合を決定する段階;前記相互間の類似度が高いカーネルの集合に含まれたカーネルが適用されるノード間の加重値を更新する段階;を含む機械学習方法が開示される。
【0009】
前記漸進的学習開始の可否を判断する段階は、前記対象データに対する前記コンボリューショナルニューラルネットワークの出力値のうち最大値をあらかじめ選定した基準値と比較し、前記コンボリューショナルニューラルネットワークの出力値のうち最大値が前記基準値よりも小さい場合、前記漸進的学習を開始すると判断することができる。
【0010】
前記対象データが、複数個のデータからなるデータパッチである場合、前記データパッチに含まれたデータのうち、前記コンボリューショナルニューラルネットワークの出力値のうち最大値があらかじめ選定した基準値よりも小さい条件を満足するデータの個数が基準個数以上の場合、前記漸進的学習を開始すると判断することができる。
【0011】
前記相互間の類似度が高いカーネルの集合を決定する段階は、カーネル間の距離または類似度を測定することによって、前記相互間の類似度が高いカーネルペアを少なくとも一つ以上決定することができる。
【0012】
前記相互間の類似度が高いカーネルの集合を決定する段階は、カーネル間の差の絶対値、
コーダル距離(chordal distance
)、KL発散(KL divergence)、交差カーネル(intersection kernel)、カイ二乗カーネル(Chi−square kernel)のうち少なくとも一つに基づいて、前記相互間の類似度が高いカーネルペアを少なくとも一つ以上決定することができる。
【0013】
前記相互間の類似度が高いカーネルの集合を決定する段階は、同じノードのコンボリューション演算に利用されるカーネルからカーネル連結行列(Concatenated kernel matrix)を構成し、前記カーネル連結行列間の距離または類似度を測定することによって、前記相互間の類似度が高いカーネル連結行列ペアを少なくとも一つ以上決定することができる。
【0014】
前記相互間の類似度が高いカーネルの集合を決定する段階は、前記カーネル連結行列間の差の絶対値、二乗差、p−
ノルム(p−norm)、プロベニウス−
ノルム(Frobenius−norm)、コーダル距離(Chordal distance)、KL発散(KL divergence)、交差カーネル(intersection kernel)、カイ二乗カーネル(Chi−square kernel)のうち少なくとも一つに基づいて、前記相互間の類似度が高いカーネルの集合を決定することができる。
【0015】
前記機械学習方法は、前記相互間の類似度が高いカーネルの集合に含まれたカーネルのそれぞれをランダム行列を利用して更新する段階;をさらに含むことができる。
【0016】
前記機械学習方法は、前記漸進的学習を開始すると判断した場合、前記コンボリューショナルニューラルネットワークに含まれたそれぞれの完全連結レイヤー(fully connected layer)で相互間の類似度が高いウェイトベクトル(Weight vector)の集合を決定する段階;および前記相互間の類似度が高いウェイトベクトルの集合に含まれたウェイトベクトルが適用されるノード間の加重値を更新する段階;をさらに含むことができる。
【0017】
前記相互間の類似度が高いウェイトベクトルの集合を決定する段階は、ウェイトベクトル間の差の距離または類似度を測定することによって、前記相互間の類似度が高いウェイトベクトルペアを少なくとも一つ以上決定することができる。
【0018】
前記相互間の類似度が高いウェイトベクトルの集合を決定する段階は、ウェイトベクトル間の差の絶対値、二乗差、p−
ノルム(p−norm)、ユークリッド
−ノルム(Euclidean−norm)、コサイン距離(cosine distance)、マハラノビス距離(Mahalanobis distance)、コーダル距離(Chordal distance)、KL発散(KL divergence)、交差カーネル(intersection kernel)、およびカイ二乗カーネル(Chi−square kernel)のうち少なくとも一つに基づいて、前記相互間の類似度が高いウェイトベクトルペアを少なくとも一つ以上決定することができる。
【0019】
前記機械学習方法は、前記相互間の類似度が高いウェイトベクトルの集合に含まれたウェイトベクトルのそれぞれを、ランダムベクトルを利用して更新する段階;をさらに含むことができる。
【0020】
前記ノード間の加重値を更新する段階は、
教師あり学習方式および
教師なし学習方式のうち少なくとも一つを利用して前記ノード間の加重値を更新することができる。
【0021】
前記
教師なし学習方式によって前記ノード間の加重値を更新する場合、前記コンボリューショナルニューラルネットワークの出力を、前記コンボリューショナルニューラルネットワークに対称的な構造を有する対称ニューラルネットワークに入力させ、前記対称ニューラルネットワークの出力と、前記コンボリューショナルニューラルネットワークに対する入力との間の差に基づいて、前記ノード間の加重値を更新することができる。
【0022】
前記対称ニューラルネットワークは、前記コンボリューショナルニューラルネットワークの全体連結レイヤーに対応する逆方向全体連結レイヤー(backward fully connected layer)と、前記コンボリューショナルニューラルネットワークのコンボリューションレイヤーおよびプーリングレイヤーに対応するデコンボリューションレイヤーおよびアンプーリングレイヤーを含むことができる。
【0023】
他の側面において、プロセッサ(processor);および前記プロセッサを介して実行される少なくとも一つの命令が保存されたメモリ(memory)を含み、前記少なくとも一つの命令は、対象データの入力を受けて;前記コンボリューショナルニューラルネットワークに対する前記対象データの統計的特性と前記コンボリューショナルニューラルネットワークに対するあらかじめ使用された訓練データの統計的特性との差に基づいて、漸進的学習開始の可否を判断し;前記漸進的学習を開始すると判断した場合、前記コンボリューショナルニューラルネットワークに含まれたそれぞれのコンボリューションレイヤーで相互間の類似度が高いカーネルの集合を決定し;前記相互間の類似度が高いカーネルの集合に含まれたカーネルが適用されるノード間の加重値を更新するように遂行される機械学習装置が提供される。
【0024】
前記少なくとも一つの命令は、カーネル間の差の絶対値、
コーダル距離(chordal distance
)、KL発散(KL divergence)、交差カーネル(intersection kernel)、カイ二乗カーネル(Chi−square kernel)のうち少なくとも一つに基づいて、前記相互間の類似度が高いカーネルペアを少なくとも一つ以上決定するように遂行され得る。
【0025】
前記少なくとも一つの命令は、同じノードのコンボリューション演算に利用されるカーネルからカーネル連結行列(Concatenated kernel matrix)を構成し、前記カーネル連結行列間の差の絶対値、二乗差、p−
ノルム(p−norm)、プロベニウス−
ノルム(Frobenius−norm)、コーダル距離(Chordal distance)、KL発散(KL divergence)、交差カーネル(intersection kernel)、カイ二乗カーネル(Chi−square
kernel)のうち少なくとも一つに基づいて、前記相互間の類似度が高いカーネルの集合を決定するように遂行され得る。
【0026】
前記少なくとも一つの命令は、前記漸進的学習を開始すると判断した場合、前記コンボリューショナルニューラルネットワークに含まれたそれぞれの完全連結レイヤー(fully connected layer)で相互間の類似度が高いウェイトベクトル(Weight vector)の集合を決定し、前記相互間の類似度が高いウェイトベクトルの集合に含まれたウェイトベクトルが適用されるノード間の加重値を更新するように遂行され得る。
【0027】
前記少なくとも一つの命令は、ウェイトベクトル間の差の絶対値に基づいて、前記相互間の類似度が高いウェイトベクトルペアを少なくとも一つ以上決定するように遂行され得る。
【発明の効果】
【0028】
開示された実施例によると、コンボリューショナルニューラルネットワークの学習に利用された訓練データと統計的特性が異なる対象データを発見することができる。そして、統計的特性が異なる対象データが発見された場合、コンボリューショナルニューラルネットワークに対して漸進的学習を開始することによって、コンボリューショナルニューラルネットワークの性能が向上され得る。また、相互間の類似度が高いカーネルまたはウェイトベクトルが適用されるノード間の加重値を選択的に更新する過程を経ることによって、機械学習の訓練効率が向上され得る。
【発明を実施するための形態】
【0030】
本発明は多様な変更を加えることができ、多様な実施例を有することができるところ、特定の実施例を図面に例示し、詳細な説明に詳細に説明する。しかし、これは本発明を特定の実施形態に限定するためのものではなく、本発明の思想および技術範囲に含まれるすべての変更、均等物ないし代替物を含むものと理解されるべきである。各図面の説明において、類似の参照符号は類似の構成要素に付与した。
【0031】
第1、第2、A、Bなどの用語は多様な構成要素の説明に使われ得るが、前記構成要素は前記用語によって限定されてはならない。前記用語は一つの構成要素を別の構成要素から区別する目的でのみ使われる。例えば、本発明の権利範囲を逸脱することなく、かつ第1構成要素は第2構成要素と命名され得、同様に第2構成要素も第1構成要素と命名され得る。「および/または」という用語は、複数の関連して記載された項目の組み合わせまたは複数の関連して記載された項目中のいずれかの項目を含む。
【0032】
ある構成要素が別の構成要素に「連結されて」いるとか「接続されて」いると言及された時には、その他の構成要素に直接的に連結されているかまたは接続されていることもあり得るが、中間に他の構成要素が存在することもあり得ると理解されるべきである。反面、ある構成要素が他の構成要素に「直接連結されて」いるとか「直接接続されて」いると言及された時には、中間に他の構成要素が存在しないものと理解されるべきである。
【0033】
本出願で使った用語は単に特定の実施例を説明するために使われたものであって、本発明を限定しようとする意図ではない。単数の表現は文脈上明白に異なることを意味しない限り、複数の表現を含む。本出願において、「含む」または「有する」などの用語は、明細書上に記載された特徴、数字、段階、動作、構成要素、部品またはこれらを組み合わせたものが存在することを指定するためのものであり、一つまたはそれ以上の別の特徴や数字、段階、動作、構成要素、部品またはこれらを組み合わせたものなどの存在または付加の可能性をあらかじめ排除しないものと理解されるべきである。
【0034】
別途に定義されない限り、技術的又は科学的な用語を含んでここで使われるすべての用語は、本発明が属する技術分野で通常の知識を有する者によって一般に理解されることと同じ意味を有している。一般に使われる辞書に定義されているような用語は、関連技術の文脈上有する意味と一致する意味を有するものと解釈されるべきであり、本出願で明白に定義しない限り、理想的又は過度に形式的な意味に解釈されない。
【0035】
以下、本発明に係る好ましい実施例を添付図面を参照して詳細に説明する。
【0036】
本明細書において学習データは、人工ニューラルネットワークを学習させるのにあらかじめ使用されたデータを意味する。対象データは人工ニューラルネットワークに入力される新しいデータであって、あらかじめ使用された学習データと異なるデータであり得る。対象データは、あらかじめ使用された学習データと異なる新しい学習データであり得る。他の例として、対象データは人工ニューラルネットワークの分析対象となるデータであってもよい。
【0037】
図1は、例示的な実施例に係る機械学習装置100を示したブロック図である。
【0038】
図1を参照すると、例示的な実施例に係る機械学習装置100は、少なくとも一つのプロセッサ110、メモリ120および保存装置125等を含むことができる。
【0039】
プロセッサ110はメモリ120および/または保存装置125に保存されたプログラム命令(program command)を実行することができる。プロセッサ110は、中央処理装置(central processing unit;CPU)、グラフィック処理装置(graphics processing unit;GPU)または本発明に係る方法が遂行される専用のプロセッサを意味し得る。メモリ120と保存装置160は、揮発性保存媒体および/または不揮発性保存媒体で構成され得る。例えば、メモリ120は読み取り専用メモリ(read only memory;ROM)および/またはランダムアクセスメモリ(random access memory;RAM)で構成され得る。
【0040】
メモリ120はプロセッサ110を介して実行される少なくとも一つの命令を保存していてもよい。
【0041】
メモリ120に保存された命令は、プロセッサ110の機械学習によってアップデートされ得る。プロセッサ110は機械学習によってメモリに保存された命令を変更することができる。プロセッサ110が遂行する機械学習は、
教師あり学習方式または
教師なし学習方式によって行われ得る。しかし、実施例はこれに制限されるものではない。例えば、機械学習は強化学習などの他の方式によって行われてもよい。
【0042】
図2は、本発明の第1実施例に係るコンボリューショナルニューラルネットワークを示した概念図である。
【0043】
図2を参照すると、コンボリューショナルニューラルネットワークは、少なくとも一つのコンボリューションおよびプーリングレイヤー(convolution & pooling layer)と、少なくとも一つの全体連結レイヤー(fully connected layer)を含むことができる。
図2では、一つのレイヤーでコンボリューション動作およびプーリング動作が行われる例を示したが、実施例はこれに制限されるものではない。例えば、コンボリューション動作が遂行されるレイヤーとプーリング動作が遂行されるレイヤーが互いに分離されていてもよい。また、コンボリューショナルニューラルネットワークはプーリング動作を遂行しなくてもよい。
【0044】
コンボリューショナルニューラルネットワークは入力を受けたデータの特徴を抽出し、入力を受けたデータよりもスケールが小さい出力データを生成して出力することができる。コンボリューショナルニューラルネットワークは、イメージまたはそれに対応する行列の入力を受けることができる。コンボリューショナルニューラルネットワークが入力を受けることができるデータは、一般的なイメージに限定されないこともある。例えば、コンボリューショナルニューラルネットワークは文字列から生成された点字のイメージの入力を受けることもできる。
【0045】
図3は文字列から生成された点字のイメージを示した概念図である。
【0046】
図3を参照すると、文字列の最後の文字から逆順でone−hot vectorに変換して行列の形態に変換する方法を利用して、点字のイメージを生成することができる。one−hot vectorは、一つの成分のみが1であり、残りの成分は0であるかすべての成分が0であり得る。one−hot vectorにおいて、「1」値を有する成分の位置は、one−hot vectorが示す文字の種類によって変わり得る。例えば、
図3に示した通り、アルファベットのC、F、B、Dのそれぞれに対応するone−hot vectorは互いに異なる位置の成分が「1」値を有し得る。
図3に示した点字のイメージは例示的なものに過ぎず、実施例はこれに制限されるものではない。例えば、one−hot vectorの大きさは、
図3に示したものよりも大きくてもよい。one−hot vectorは、テキスト集合テキスト合計「abcdefghijklmnopqrstuvwxyz0123456789−、;.!?:“ウォン”/ウォンウォン|_@#$%^&*〜′+−=<>()[]{}」を表現することができる。one−hot vectorにおいて、「1」成分の位置はone−hot vectorが示す文字の順序により変わり得る。
【0047】
コンボリューションおよびプーリングレイヤーはイメージまたは行列の入力を受け、入力を受けたイメージまたは行列に対してコンボリューション演算を遂行することができる。
【0048】
図4は、コンボリューション演算を例示的に示した概念図である。
【0049】
図4を参照すると、プロセッサ110は、カーネルFIを利用して入力イメージOIに対するコンボリューション演算を遂行することができる。カーネルFIはイメージOIのピクセルの個数よりも小さい大きさの行列であり得る。例示的に、フィルタカーネルFIの(1、1)成分は0であり得る。したがって、コンボリューションを計算する時、カーネルFIの(1、1)成分に対応するイメージOIのピクセルに対して0を乗算してもよい。他の例として、カーネルFIの(2、1)成分は1である。したがって、コンボリューションを計算する時、カーネルFIの(2、1)成分に対応するイメージOIのピクセルに対して1を乗算してもよい。
【0050】
プロセッサ110はイメージOI上でカーネルFIの位置を変更しながら、イメージOIに対するコンボリューション演算を遂行することができる。そして、プロセッサ110は計算されたコンボリューション値からコンボリューションイメージを出力することができる。
【0051】
図5は、プロセッサ110が
図4に示したイメージOIからコンボリューションイメージを抽出したことを示した概念図である。
【0052】
図4に示したフィルタカーネルFIが、イメージOI上で動くことができる場合の数が(10−3+1)×(10−3+1)=8×8個であるため、プロセッサ110は8×8個のコンボリューション値を計算することができる。そして、8×8個のコンボリューション値から
図6に示したような8×8ピクセルの大きさのコンボリューションイメージを抽出することができる。コンボリューションイメージCIのピクセルの個数は、原本イメージOIよりも小さくなるようになる。プロセッサ110は、カーネルFIを利用することによって、原本イメージの特性が反映されたコンボリューションイメージを抽出することができる。プロセッサ110は、カーネルFIを利用して入力されたイメージOIよりも大きさが小さく、入力されたイメージOIの特性を反映するコンボリューションイメージCIを出力することができる。コンボリューション演算はコンボリューションレイヤーまたはコンボリューションおよびプーリングレイヤーで遂行され得る。
【0053】
図6は、
図2に示したコンボリューションおよびプーリングレイヤーの動作を示した概念図である。
【0054】
図6では便宜上、コンボリューショナルニューラルネットワークの入力レイヤー(Input layer 0)と、第1コンボリューションおよびプーリングレイヤー(Convolution & pooling layer 1)のみを示した。
図6を参照すると、入力レイヤーは複数個のイメージの入力を受けることができる。入力レイヤーは複数個の行列の入力を受けることもできる。入力イメージは、コンボリューションおよびプーリングレイヤーでコンボリューション演算を遂行するノードに伝達され得る。F
(0)個の入力イメージはM
(0)×L
(0)の大きさを有することができる。例えば、128x128のRGBイメージの場合、F
(0)=3、M
(0)=L
(0)=128のイメージで見ることができ、68種類の文字1000個で構成された文字列の場合、
図3に例示された過程を経て、F
(0)=68、M
(0)=1、L
(0)=1000のイメージに変換される。
【0055】
入力イメージは、最初のコンボリューションおよびプーリングレイヤーのコンボリューション演算を遂行するノードのそれぞれに入力され得る。コンボリューション演算を遂行するノードは、
図4および
図5を参照して説明したのと同じように、入力イメージに対してコンボリューション演算を遂行することができる。例示的に、最初のコンボリューションおよびプーリングレイヤーで遂行されるコンボリューション演算を数学式1で表すことができる。
【0057】
数学式1において、φ
(l)(・)は活性化関数を意味する。活性化関数は、シグモイド(sigmoid)関数、ハイパータンジェント(hypertangent)関数、整流線形ユニット(rectifier linear unit)等を含むことができる。
【0059】
数学式1を参照すると、最初のコンボリューションおよびプーリングレイヤーは、F
(0)個の入力イメージ(または行列)の入力を受けて、F
(1)個の出力イメージ(または行列)を生成することができる。コンボリューション演算によって出力されるイメージ(または行列)の大きさは入力イメージ(または行列)の大きさよりも小さくてもよい。出力イメージ(または行列)はコンボリューション演算に利用されるカーネルにより変わり得る。
【0063】
他の例として、プーリング演算は数学式3で示すこともできる。
【0065】
数学式3を参照すると、最初のコンボリューションおよびプーリングレイヤーはP
(1)×Q
(1)個のピクセルまたは行列成分の平均値を代表値として選択することができる。この場合、プーリング演算は隣接したピクセルまたは成分の平均値を計算する方式で行われ得る。
【0066】
再び
図3を参照すると、コンボリューショナルニューラルネットワークは、N
C個のコンボリューションおよびプーリングレイヤーを含むことができる。数学式1を一般化して、l番目のコンボリューションおよびプーリングレイヤーで遂行されるコンボリューション演算を数学式4のように示すことができる。
【0069】
数学式2を一般化して、l番目のコンボリューションおよびプーリングレイヤーで遂行されるプーリング演算は数学式5のように示すことができる。
【0072】
プーリング演算の他の例として、数学式3を一般化して、l番目のコンボリューションおよびプーリングレイヤーで遂行されるプーリング演算は数学式6のように示すことができる。
【0074】
最後のコンボリューションおよびプーリングレイヤー(Layer N
C)で出力されるF
(Nc)個のM
(Nc)×L
(Nc)大きさを有する出力イメージまたは出力行列は次のように表現され得る。
【0076】
最後のコンボリューションおよびプーリングレイヤー(Layer N
C)で出力されるイメージまたは行列は最初の全体連結レイヤー(Layer N
C+1)に入力され得る。最初の全体連結レイヤーは入力を受けたイメージを利用して、1×F
(Nc)M
(Nc)L
(Nc)(≡∧
(Nc))の大きさを有する1次元ベクトルa
(Nc)(t) for 0≦t≦∧
(Nc)−1に変換することができる。
【0077】
最初の全体連結レイヤーは変換した1次元ベクトルに対してウェイト(weight)行列を乗算することができる。例示的に、最初の全体連結レイヤーが遂行する演算は数学式7のように示すことができる。
【0079】
数学式7において、W
(Nc+1)(t、u)は、最初の全体連結レイヤーで利用するウェイト行列を意味する。a
(Nc+1)(t)は最初の全体連結レイヤーで出力されるベクトルを意味する。a
(Nc+1)(t)は1次元ベクトルであり得る。∧
(Nc+1)は最初の全体連結レイヤーで出力されるベクトルa
(Nc+1)(t)の大きさを意味する。
【0080】
数学式7を参照すると、最初の全体連結レイヤーは∧
(Nc)大きさのベクトルからウェイト行列を利用して∧
(Nc+1)大きさのベクトルを出力することができる。
【0081】
図3を参照すると、コンボリューショナルニューラルネットワークは、N
F個の全体連結レイヤーを含むことができる。数学式7を一般化して、l番目の全体連結レイヤーで遂行される演算は数学式8のように示すことができる。
【0083】
数学式8において、a
(l)(t)はl番目の全体連結レイヤーの出力ベクトルを意味する。W
(l)(t,u)はl番目の全体連結レイヤーで利用するウェイト行列を意味する。φ
(l)はl番目の全体連結レイヤーで利用する活性化関数を意味する。a
(l-1)(u)はl−1番目の全体連結レイヤーの出力ベクトルであって、l番目の全体連結レイヤーに対する入力ベクトルであり得る。
【0084】
出力レイヤー(Output layer)は最後の全体連結レイヤーの出力ベクトルa
(NC+NF)(t)の入力を受けることができる。出力レイヤーは数学式9のようにベクトル演算を遂行することができる。
【0086】
数学式9において、z
(NC+NF+1)(t)は出力レイヤーで出力されるベクトルを意味する。Cは出力ベクトルz
(NC+NF+1)(t)のクラス(class)の個数を意味する。
【0087】
出力レイヤーは数学式9で獲得した出力ベクトルz
(NC+NF+1)(t)のそれぞれのクラスに対する最終出力値を計算することができる。出力レイヤーは活性化関数を利用して最終出力値を計算することができる。出力レイヤーの最終出力値の計算過程は数学式10のように示すことができる。
【0089】
数学式10において、φ
(NC+NF+1)は出力レイヤーで利用される活性化関数を意味する。φ
(Nc+Nf+1)はシグモイド関数、ハイパータンジェント関数および整流線形ユニットのうち少なくとも一つであり得る。数学式10を参照すると、出力レイヤーは出力ベクトルz
(Nc+Nf+1)(t)のt番目のclassに対する最終出力値^γ(t)を計算することができる。
【0090】
他の例として、最終出力レイヤーはソフトマックス(soft max)関数を利用して最終出力値を計算することもできる。出力レイヤーの最終出力値の計算過程は数学式11のように示すこともできる。
【0092】
数学式11を参照すると、最終出力レイヤーは出力ベクトルのクラス値に対する指数関数を利用して最終出力値を計算することができる。
【0093】
機械学習装置100は、コンボリューショナルニューラルネットワークを決定するパラメーターを変化させることによって、コンボリューショナルニューラルネットワークを学習させることができる。例えば、機械学習装置100は、コンボリューショナルニューラルネットワークのノード間の加重値を最適化する方向にコンボリューショナルニューラルネットワークを学習させることができる。
【0094】
機械学習装置100は、学習データに対するコンボリューショナルニューラルネットワークの出力と、コンボリューショナルニューラルネットワークのノード間の加重値を利用して費用関数を計算することができる。機械学習装置100は費用関数値が最小化するようにコンボリューショナルニューラルネットワークを学習させることができる。
【0095】
例示的に、費用関数は数学式12のように示すことができる。
【0098】
機械学習装置100は費用関数J(W)が最小化するようにノード間の加重値を変更することができる。機械学習装置100は逆伝播アルゴリズムおよび確率的勾配降下(stochastic gradient descent)などのような最適化アルゴリズムを利用してニューラルネットワークを学習させることができる。他の例として、機械学習装置100はg、reedy layer−wiseトレーニング(Bengio、Yoshua、et al. “Greedy layer−wise training of deep networks.” Advances in neural information processing systems 19 (2007):)基盤のプレトレーニング(pre−training)方式および微細調整(fine tuning)方式を共に並行してニューラルネットワークを学習させることができる。他の例として、機械学習装置100は、ドロップアウト(drop−out)( N. Srivastava、et al. 「Dropout:A simple way to prevent neural networks from overfitting.」 The Journal of Machine Learning Research (2014):1929−1958.)やマックスアウト(max−out)( Goodfellow、Ian J.、et al. 「Maxout networks.」 arXiv preprint arXiv:1302.4389 (2013))方式を利用することもできる。
【0099】
以上でコンボリューショナルニューラルネットワークの構造と動作について説明した。前記の説明は例示的なものに過ぎず、具体的なレイヤーの個数と構造および演算過程は通常の技術者に容易な水準で変わり得る。
【0100】
以下では本発明の例示的な実施例に係る、コンボリューショナルニューラルネットワークに対する漸進的学習過程を含む機械学習方法について説明する。
【0101】
図7は、本発明の第2実施例に係る機械学習方法を示したフローチャートである。
【0102】
図7を参照すると、S110段階で、機械学習装置100は対象データの入力を受けることができる。対象データは、コンボリューショナルニューラルネットワークの学習にあらかじめ利用した学習データと異なるデータであり得る。対象データは追加学習のためのデータであってもよく、コンボリューショナルニューラルネットワークの分析対象であるデータであってもよい。対象データは一つのデータであってもよく、複数のデータからなるデータ配置であってもよい。
【0103】
S120段階で、プロセッサ110は、対象データの統計的特性とあらかじめ使用された訓練データの統計的特性との差に基づいて、漸進的学習開始の可否を判断することができる。プロセッサ110は、コンボリューショナルニューラルネットワークに対象データを入力した場合の出力統計と、訓練データを入力した場合の出力統計とを比較して、漸進的学習開始の可否を判断することができる。以下では、対象データが複数のデータで構成されるデータ配置である場合を例に挙げて漸進的学習開始の可否の判断過程を説明する。
【0112】
S130段階で、プロセッサ110はコンボリューショナルニューラルネットワークに含まれたそれぞれのコンボリューションレイヤー(またはコンボリューションおよびプーリングレイヤー)で相互間の類似度が高いカーネルの集合を決定することができる。
【0113】
図8は相互間の類似度が高いカーネルの集合を決定する方式の第1実施例を示した概念図である。
【0114】
図8を参照すると、プロセッサ110は任意のl番目のコンボリューションレイヤー(またはコンボリューションおよびプーリングレイヤー)でk番目の出力イメージまたは行列の生成に利用されるカーネルのうち相互間の類似度が高いカーネルを選択することができる。プロセッサ110はカーネル間の距離または類似度を測定することによって、相互間の類似度が高いカーネルペアを少なくとも一つ以上決定することができる。具体的な例として、プロセッサ110はカーネル間の差の絶対値に基づいて相互間の類似度が高いカーネルペアを少なくとも一つ以上決定することができる。例示的に、プロセッサ110は数学式16を利用して、相互間の類似度が高いカーネルペアを決定することができる。
【0120】
前述した説明では、プロセッサ110が二つのカーネル間の差の絶対値(または二つのカーネル間の距離)に基づいて、相互間の類似度が高いカーネルペアを決定することができる。しかし、実施例はこれに制限されるものではない。例えば、プロセッサ110は、カーネル間の
コーダル距離(chordal distance
)(Conway、John H.、Ronald H. Hardin、and Neil JA Sloane. 「Packing lines、planes、etc.:Packings in Grassmannian spaces.」 Experimental mathematics 5.2 (1996):139−159)、KL発散(KL divergence)、交差カーネル(intersection kernel)、カイ二乗カーネル(Chi−square kernel)のうち少なくとも一つに基づいて、相互間の類似度が高いカーネルペアを決定することもできる。
【0121】
図9は、相互間の類似度が高いカーネルの集合を決定する方式の第2実施例を示した概念図である。
【0123】
プロセッサ110はカーネル連結行列間の距離または類似度を測定することによって、相互間の類似度が高いカーネル連結行列ペアを少なくとも一つ以上決定することができる。具体的な例として、プロセッサ110はカーネル連結行列間の差の絶対値に基づいて相互間の類似度が高いカーネルの集合を決定することができる。例えば、プロセッサ110は数学式17を利用して、相互間の類似度が高いカーネルペアを決定することができる。
【0126】
数学式17を参照すると、プロセッサ110はl番目のコンボリューションレイヤー(またはコンボリューションおよびプーリングレイヤー)で行列の差の絶対値が最も小さいカーネル連結行列ペアを相互間の類似度が高い行列と決定することができる。プロセッサ110は、相互間の類似度が高いカーネル行列ペアに対応するカーネルを相互間の類似度が高いカーネルの集合に含ませることができる。プロセッサ110は、l番目のコンボリューションレイヤー(またはコンボリューションおよびプーリングレイヤー)で相互間の類似度が高いカーネル連結行列ペアを一つのみ決定することができる。他の例として、プロセッサ110は、l番目のコンボリューションレイヤー(またはコンボリューションおよびプーリングレイヤー)で相互間の類似度が高いカーネル連結行列ペアを複数個決定することができる。
【0127】
この場合、プロセッサ110は既選択されたカーネル連結ペアを除いて、数学式17によるカーネルペア選択手続きを複数回繰り返すことができる。
【0129】
前述した説明では、プロセッサ110が二つの行列間の差の絶対値(または二つの行列間の距離)に基づいて、相互間の類似度が高いカーネル連結行列ペアを決定することができる。しかし、実施例はこれに制限されるものではない。例えば、プロセッサ110は、行列間の
コーダル距離(chordal distance
)(Conway、John H.、Ronald H. Hardin、and Neil JA Sloane. 「Packing lines、planes、etc.:Packings in Grassmannian spaces.」 Experimental mathematics 5.2 (1996):139−159)、KL発散(KL divergence)、交差カーネル(intersection kernel)、カイ二乗カーネル(Chi−square kernel)のうち少なくとも一つに基づいて、相互間の類似度が高いカーネル連結行列ペアを決定することもできる。
【0130】
再び
図7を参照すると、S140段階で、プロセッサ110は相互間の類似度が高いカーネルの集合に含まれたカーネルを更新することができる。例えば、
図8に示した通り、プロセッサ110が複数個のカーネルペアを選択した場合、プロセッサ110は選択されたカーネルペアを更新することができる。プロセッサ110は、ランダムカーネルを利用して相互間の類似度が高いカーネルを更新することができる。例えば、プロセッサ110のカーネル更新過程は数学式18のように示すことができる。
【0133】
他の例として、
図9に示した通り、プロセッサ110が複数個のカーネル連結行列を選択した場合、プロセッサ110は選択されたカーネル連結行列を更新する方式で、相互間の類似度が高いカーネルを更新することができる。例えば、プロセッサ110のカーネル連結行列の更新過程は数学式19のように示すことができる。
【0136】
プロセッサ110は相互間の類似度が高いカーネルを更新することによって、コンボリューショナルニューラルネットワークの性能を改善することができる。プロセッサ110は相互間の類似度が高いカーネルを更新しなくてもよい。この場合、S140段階は省略され得る。
【0137】
S150段階で、プロセッサ110は相互間の類似度が高いカーネルが適用されるノード間の加重値を更新することができる。プロセッサ110は、更新対象となる加重値の集合と、更新しない加重値の集合を区分することができる。例えば、プロセッサ110は下記のように加重値の集合を区分することができる。
【0139】
プロセッサ110は更新対象となる加重値を機械学習によって更新することができる。例えば、プロセッサ110は対象データから機械学習に利用するデータを選別することができる。例えば、対象データが複数個のデータを含む配置データである場合、プロセッサ110は配置データから既存の訓練データと統計的特性が異なるデータを抽出することができる。プロセッサ110が漸進的学習に利用されるデータを抽出する方式は数学式20のように示すことができる。
【0141】
数学式20において、iは配置データに含まれたデータのインデックスを示す。Βは配置データで漸進的学習に利用されるデータのインデックスの集合を意味する。数学式20を参照すると、プロセッサ110は数学式15に示した条件を満足するデータを漸進的学習用データとして選別することができる。
【0142】
プロセッサ110は
教師あり学習方式および
教師なし学習方式のうち少なくとも一つを利用して、WNに含まれた加重値を更新することができる。プロセッサ110が
教師あり学習方式を利用する場合、Βに含まれたデータは
教師あり学習のためのラベリングがされていなければならない。もし、ラベリングがされていない場合、ラベリング過程がさらに遂行され得る。
【0143】
加重値の更新過程は数学式21のように示すことができる。
【0146】
プロセッサ110は逆伝播アルゴリズムおよび確率的勾配降下(stochastic gradient descent)方式などのような最適化アルゴリズムなどを利用してニューラルネットワークを学習させることができる。他の例として、プロセッサ110は、greedy layer−wiseトレーニング(Bengio、Yoshua、et al. 「Greedy layer−wise training of deep networks.」 Advances in neural information processing systems 19 (2007):)基盤のプレトレーニング(pre−training)方式および微細調整(fine tuning)方式を共に並行してニューラルネットワークを学習させることができる。
【0147】
数学式20で示したデータ集合Βを利用した機械学習過程が完了すると、プロセッサ110は全体のデータ(すなわち、以前に使用された訓練データおよび対象データのすべて)を利用して追加的な機械学習を遂行することもできる。プロセッサ110は、ドロップアウト(drop−out)( N. Srivastava、et al. 「Dropout:A simple way to prevent neural networks from overfitting.」 The Journal of Machine Learning Research (2014):1929−1958.)やマックスアウト(max−out)( Goodfellow、Ian J.、et al. 「Maxout networks.」 arXiv preprint arXiv:1302.4389 (2013))方式を利用して追加的な機械学習を遂行することができる。
【0148】
図10は、本発明の第3実施例に係る機械学習方法を示した概念図である。
【0149】
図10の実施例の説明において、
図9と重複する内容は省略する。
【0150】
図10を参照すると、S160段階で、プロセッサ110はコンボリューショナルニューラルネットワークの全体連結レイヤーのそれぞれにおいて、相互間の類似度が高いウェイトベクトルの集合を決定することができる。ウェイトベクトルは数学式7で示したウェイト行列から抽出され得る。例えば、プロセッサ110は数学式22に示した通り、ウェイトベクトルを抽出することができる。
【0153】
プロセッサ110はウェイトベクトル間の距離または類似度を測定することによって、相互間の類似度が高いウェイトベクトルペアを少なくとも一つ以上決定することができる。具体的な例として、プロセッサ110はウェイトベクトル間の差の絶対値に基づいて、相互間の類似度が高いウェイトベクトルペアを少なくとも一つ以上決定することができる。例示的に、プロセッサ110は数学式23を利用して、相互間の類似度が高いウェイトベクトルペアを決定することができる。
【0156】
数学式23を参照すると、プロセッサ110は、l番目の全体連結レイヤーでウェイトベクトル差の絶対値が最も小さいウェイトベクトルペアを、相互間の類似度が高いウェイトベクトルペアと決定することができる。プロセッサ110は、l番目の全体連結レイヤーで相互間の類似度が高いウェイトベクトルペアを一つのみ決定することができる。他の例として、プロセッサ110はl番目の全体連結レイヤーで相互間の類似度が高いウェイトベクトルペアを複数個決定することもできる。
【0159】
前述した説明では、プロセッサ110が二つのウェイトベクトル間の差の絶対値(または二つのウェイトベクトル間の距離)に基づいて、相互間の類似度が高いウェイトベクトルペアを決定することができる。しかし、実施例はこれに制限されるものではない。例えば、プロセッサ110は、ウェイトベクトル間の二乗差、p−
ノルム(p−norm)、ユークリッド
−ノルム(Euclidean−norm)、コサイン距離(cosine distance)、マハラノビス距離(Mahalanobis distance)、コーダル距離(Chordal distance)、KL発散(KL divergence)、交差カーネル(intersection kernel)、およびカイ二乗カーネル(Chi−square kernel)のうち少なくとも一つに基づいて、相互間の類似度が高いウェイトベクトルペアを決定することもできる。
【0160】
S170段階で、プロセッサ110は相互間の類似度が高いウェイトベクトルを更新することができる。プロセッサ110はランダムベクトルを利用して相互間の類似度が高いウェイトベクトルを更新することができる。例えば、プロセッサ110のカーネル更新過程は数学式24のように示すことができる。
【0163】
他の例として、プロセッサ110は数学式25のようにウェイトベクトルを更新することもできる。
【0165】
さらに他の例として、プロセッサ110はウェイトベクトルを更新しなくてもよい。
【0166】
S180段階で、プロセッサ110は相互間の類似度が高いウェイトベクトルが適用されるノード間の加重値を更新することができる。
【0167】
プロセッサ110は選択された相互間の類似度が高いウェイトベクトルに基づいて、更新対象となる加重値の集合と、残りの加重値の集合を区分することができる。プロセッサ110は数学式20に示した通り、漸進的学習用データを選別することができる。プロセッサ110は数学式21を参照して説明した通り、漸進的学習用データを利用して更新対象となる加重値を更新することができる。プロセッサ110は全体のデータを利用してコンボリューショナルニューラルネットワークに対する追加学習を進めることができる。
【0168】
対象データにラベリングがされていない場合、ラベリング作業を行わずにプロセッサ110は
教師なし学習によってコンボリューショナルニューラルネットワークを学習させてもよい。この場合、プロセッサ110はコンボリューショナルニューラルネットワークに対して、対称的構造を有する対称ニューラルネットワークをコンボリューショナルニューラルネットワークに連結することができる。プロセッサ110はコンボリューショナルニューラルネットワークの出力を対称ニューラルネットワークに入力させることができる。
【0169】
図11は、本発明の第4実施例に係るニューラルネットワークを示した概念図である。
【0170】
図11を参照すると、ニューラルネットワークはコンボリューショナルニューラルネットワークおよび対称ニューラルネットワークを含むことができる。対称ニューラルネットワークは、コンボリューショナルニューラルネットワークに対して対称的な構造を有することができる。対称ニューラルネットワークは、前記コンボリューショナルニューラルネットワークの全体連結レイヤーに対応する逆方向の全体連結レイヤー(backward fully connected layer)と、前記コンボリューショナルニューラルネットワークのコンボリューションレイヤーおよびプーリングレイヤーに対応するデコンボリューションレイヤーおよびアンプーリングレイヤーを含むことができる。対称ニューラルネットワークの具体的な動作に対する説明は韓国特許出願(10−2015−183898)で代替する。
【0171】
プロセッサ110は対称ニューラルネットワークの出力とコンボリューショナルニューラルネットワークに入力される入力との間の差に基づいて、ノード間の加重値を更新することができる。例えば、プロセッサ110は、対称ニューラルネットワークの出力とコンボリューショナルニューラルネットワークに入力される入力との間の再構成エラー(reconstruction error)および平均二乗エラー(mean squared error)のうち少なくとも一つに基づいて、費用関数を決定することができる。プロセッサ110は前述した方式によって決定された費用関数を最小化する方向にノード間の加重値を更新することができる。プロセッサ110は数学式20に示したデータ集合Βを利用してコンボリューショナルニューラルネットワークを学習させることができる。プロセッサ110は全体のデータを利用してコンボリューショナルニューラルネットワークを学習させることもできる。学習過程が終了すると、プロセッサ110は対称ニューラルネットワークを除去することができる。
【0172】
以上、
図1〜
図11と数学式1〜数学式25を参照して本発明の例示的な実施例に係る機械学習方法および装置について説明した。前述した実施例によると、コンボリューショナルニューラルネットワークの学習に利用された訓練データと統計的特性が異なる対象データを発見することができる。そして、統計的特性が異なる対象データが発見された場合、コンボリューショナルニューラルネットワークに対して漸進的学習を開始することによって、コンボリューショナルニューラルネットワークの性能を向上させることができる。また、相互間の類似度が高いカーネルまたはウェイトベクトルが適用されるノード間の加重値を選択的に更新する過程を経ることによって、機械学習効率を向上させることができる。
【0173】
本発明の実施例に係る肩幅測定方法の動作は、コンピュータ読み取り可能記録媒体にコンピュータ読み取り可能プログラムまたはコードとして具現することが可能である。コンピュータ読み取り可能記録媒体はコンピュータシステムによって読み込まれ得るデータが保存されるすべての種類の記録装置を含む。また、コンピュータ読み取り可能記録媒体は、ネットワークに連結されたコンピュータシステムに分散されて分散方式でコンピュータ読み取り可能プログラムまたはコードが保存され実行され得る。
【0174】
また、コンピュータ読み取り可能記録媒体は、ロム(rom)、ラム(ram)、フラッシュメモリ(flash memory)などのように、プログラム命令を保存して遂行するように特別に構成されたハードウェア装置を含むことができる。プログラム命令は、コンパイラ(compiler)によって作られるような機械語コードだけでなく、インタープリタ(interpreter)などを使ってコンピュータによって実行され得る高級言語コードを含むことができる。
【0175】
方法段階の一部又は全部は例えば、マイクロプロセッサ、プログラム可能なコンピュータまたは電子回路のようなハードウェア装置によって(または利用して)遂行され得る。一部の実施例において、最も重要な方法段階の少なくとも一つはこのような装置によって遂行され得る。
【0176】
実施例において、プログラム可能なロジック装置(例えば、フィールドプログラマブルゲートアレイ)が、ここで説明された方法の機能の一部又は全部を遂行するために使われ得る。実施例において、フィールドプログラマブルゲートアレイは、ここで説明された方法のうち一つを遂行するためのマイクロプロセッサとともに作動することができる。一般に、方法は何らかのハードウェア装置によって遂行されることが好ましい。
【0177】
上記では本発明の好ましい実施例を参照して説明したが、該当技術分野の熟練した当業者は下記の特許請求の範囲に記載された本発明の思想および領域から逸脱しない範囲内で、本発明を多様に修正および変更し得ることが理解できるであろう。