【文献】
Jan Koutnik, et al.,"A Clockwork RNN",arxiv.org [online],Cornell University,2014年 2月14日,[2019年9月24日検索]、インターネット <URL: https://arxiv.org/pdf/1402.3511.pdf>
【文献】
Vu Pham, et al.,"Dropout improves Recurrent Neural Networks for Handwriting Recognition",arxiv.org [online],Cornell University,2014年 3月10日,[2019年4月19日検索]、インターネット<URL: https//arxiv.org/pdf/1312.4569v2.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
前記基準隠れノードは、当該基準隠れノードが含まれた隠れ層の下位層から入力される値を遮断し、及び/又は当該基準隠れノードが含まれた隠れ層の上位層に出力される値を遮断する、請求項1乃至3のいずれか一項に記載の方法。
前記学習データは、音声データ、映像データ、生体データ、及び筆跡データのうち少なくとも1つで構成されたシーケンシャルデータを含む、請求項1又は3に記載の方法。
前記ニューラルネットワークの学習結果に基づいて前記ニューラルネットワークに適用される結合重みを更新するステップ、を含む請求項1乃至8のいずれか一項に記載の方法。
前記基準隠れノードのそれぞれは、当該基準隠れノードが含まれた隠れ層の下位層から入力される値を遮断し、及び/又は当該基準隠れノードが含まれた隠れ層の上位層に出力される値を遮断する、請求項12又は13に記載の装置。
【発明を実施するための形態】
【0018】
以下、添付の図面を参照しながら、実施形態を詳細に説明する。下記の特定の構造的ないし機能的説明は、単に実施形態を説明するための目的で例示されたものであって、実施形態の範囲が本文に説明された内容に限定されると解釈されてはならない。関連技術分野における通常の知識を有する者であれば、このような記載から様々な修正及び変形が可能である。また、各図面に提示された同一の参照符号は同一の部材を示し、公知された機能及び構造は省略する。
【0019】
図1は、一実施形態に係るニューラルネットワーク学習装置を示す図である。
【0020】
ニューラルネットワーク学習装置100は、ニューラルネットワーク(例えば、人工ニューラルネットワーク)を学習させる。ニューラルネットワークは、接続線で接続された複数の人工ニューロンを用いて生物学的なシステムの算出能力を模倣するソフトウェア及び/又はハードウェアで実現された認識モデルである。
【0021】
ニューラルネットワークにおいては、生物学的なニューロンの機能を単純化させた人工ニューロンが用いられ、人工ニューロンは、結合重み(connection weight)を有する接続線によって相互接続される。例えば、結合重みは接続線が有する特定の値であって、接続強度とも示してもよい。ニューラルネットワークは、人工ニューロンによって人間の認知作用や学習過程を行うことができる。人工ニューロンはニューラルネットワークの単位元(unit element)のノードとも呼んでもよい。
【0022】
一例として、ニューラルネットワークは複数の層を含んでもよい。例えば、ニューラルネットワークは、入力層、隠れ層、出力層を含んでもよい。入力層は、学習を行うための入力を受信して隠れ層に伝達することができ、出力層は、隠れ層のノードから受信された信号に基づいてニューラルネットワークの出力を生成することができる。隠れ層は、入力層と出力層との間に位置し、入力層によって伝達された学習データを予測しやすい値に変化させることができる。入力層と隠れ層に含まれたノードは、結合重みを有する接続線によって接続され、隠れ層と出力層に含まれたノードにおいても結合重みを有する接続線によって接続される。入力層、隠れ層、及び出力層は複数のノードを含んでもよい。
【0023】
ニューラルネットワークは複数の隠れ層を含んでもよい。複数の隠れ層を含むニューラルネットワークを深いニューラルネットワークと言い、深いニューラルネットワークを学習させることを深い学習(ディープラーニング)と言う。隠れ層に含まれたノードを隠れノードと言う。前の時間区間における隠れノードの出力は、現在の時間区間における隠れノードに接続され得る。そして、現在の時間区間における隠れノードの出力は、次の時間区間における隠れノードに接続され得る。互いに異なる時間区間における隠れノード間に再帰的(recurrent)な接続があるニューラルネットワークをリカレントニューラルネットワークと言う。
【0024】
ニューラルネットワーク学習装置100は、教師あり学習過程(supervised learning process)によってニューラルネットワークを学習させる。教師あり学習過程とは、学習データとそれに対応する出力データをともにニューラルネットワークに入力して、学習データに対応する出力データが出力されるように接続線の結合重みを更新する方法である。学習データは、教師データ(training data)の集合を指し示すものである。ニューラルネットワークがパターン認識を補正することができるように、学習データを用いて適切なニューラルネットワークの重みと接続線が決定されてもよい。
【0025】
例えば、ニューラルネットワーク学習装置100は、デルタルールとエラーバックプロパゲーション学習法(back propagation learning technique)などによって人工ニューロン間の結合重みを更新してもよい。
【0026】
エラーバックプロパゲーション学習法は、与えられた学習データに対して前進計算(forward computation)でエラーを推定した後、出力層から始めて隠れ層と入力層に逆方向に推定したエラーを伝搬して、エラーを減らす方向に結合重みを調節する方法である。データを分類する際のニューラルネットワークの処理は、入力層、隠れ層、出力層の順に行われるが、エラーバックプロパゲーション学習における結合重みの更新方向は、出力層、隠れ層、入力層の順に行われる。
【0027】
図1を参照すると、ニューラルネットワーク学習装置100は、受信部110、及び学習部120を含む。ニューラルネットワーク学習装置100は、ハードウェアモジュールで実現することができる。ニューラルネットワーク学習装置100は、スマートフォン、タブレットPC、ラップトップコンピュータ、デスクトップコンピュータ、テレビ、ウェアラブル装置、セキュリティシステム、スマートホームシステムなどの様々なコンピュータ装置及び/又はシステムに搭載されてもよい。
【0028】
受信部110は学習データを受信する。学習データは、音声データ、映像データ、生体データ、及び筆跡データのうち少なくとも1つで構成されたシーケンシャルデータを含んでもよい。
【0029】
学習部120はまず学習データから特徴値を抽出する。例えば、学習部120は、音声データにおいて時間によって変化する相対的変化量を特徴値として抽出し、抽出された特徴値に基づいてニューラルネットワークを学習させる。音声データは一定の時間単位に分割され、分割された音声データが学習データとしてニューラルネットワークに入力されてもよい。
【0030】
学習部120は、ニューラルネットワークに含まれた複数の隠れノードのうち少なくとも1つの基準隠れノードを除いた残りの隠れノードに基づいてニューラルネットワークを学習させる。残りの隠れノード、入力層のノード、出力層のノードは、1つの学習パターンを構成することができる。ニューラルネットワークは、互いに異なる時間区間において、隠れノード間の接続が存在するリカレントニューラルネットワークであってもよく、複数の隠れ層を含んでもよい。連続する時間区間において、隠れ層の出力値は次の時間区間の隠れ層に入力されてもよい。
【0031】
学習部120は、複数の隠れノードのうち少なくとも1つの基準隠れノードを任意に選択することができる。同一の学習データが入力される間、学習部120は、時間区間ごとに少なくとも1つの基準隠れノードを任意に選択することができる。したがって、学習部120は、時間区間ごとに互いに異なる学習パターンに基づいてニューラルネットワークを学習させることができる。
【0032】
基準隠れノードは、ニューラルネットワークを学習させる過程から除外される隠れノードを示す。学習過程において、基準隠れノードと上位層との間の接続を考慮しないことで基準隠れノードと上位層のノードとの間の接続が無視されてもよい。言い換えると、学習過程における基準隠れノードは、上位層に出力される値を遮断することができる。ここで、上位層は、当該基準隠れノードが含まれた隠れ層より上位にある異なる隠れ層又は出力層を示す。基準隠れノードと上位層のノードとの間の接続が無視されることは、基準隠れノードの出力が上位層のノードに入力されない場合、又は基準隠れノードが上位層のノードに「0」の値又は他のヌル値を出力する場合を意味する。
【0033】
学習過程において、基準隠れノードと異なる時間区間における隠れノード間の接続は無視されてもよい。ただし、基準隠れノードと異なる時間区間における自分自身の隠れノード間の接続は、無視されずに保持され得る。ここで、基準隠れノードは、前の時間区間における自分自身の隠れノードの値を次の時間区間における自分自身の隠れノードに伝達することができる。言い換えると、基準隠れノードと異なる時間区間における自分自身の隠れノード間の結合重みは、「1」であってもよい。時間区間ごとに除外される基準隠れノードが任意に選択されるため、他の時間区間における自分自身の隠れノードは、基準隠れノードであってもよく、基準隠れノードでなくてもよい。
【0034】
複数の隠れノードのうち少なくとも1つの基準隠れノードを除いた残りの隠れノードは、他の時間区間の隠れノードに接続されてもよい。
【0035】
1つの学習データに基づいた学習が終了する場合、学習部120は、選択的に他の学習データに基づいてニューラルネットワークを学習させることができる。
【0036】
学習部120は、学習データに基づいた学習結果にしたがってニューラルネットワークに適用された結合重みを更新することができる。学習部120は、ニューラルネットワークの出力層から出力される出力値と学習データに対する所望の期待値とを比較してエラーを算出し、算出されたエラーを減らす方向にニューラルネットワークに適用される結合重みを調整することができる。学習部120は、予め設定された繰り返し回数に基づいてニューラルネットワークが学習データに含まれた全てのシーケンシャルデータに対する学習を繰り返し行うように制御することができる。
【0037】
図2は、一実施形態に係るニューラルネットワークを学習させる過程を説明するための図である。
【0038】
図2を参照すると、各タイムスタンプによる特定のニューラルネットワークの学習パターン240,250,260が図示されている。
図2においては、一実施形態に係るニューラルネットワークの学習方法を説明するために一部の接続線を省略する。説明の便宜のために現在の時間区間Tの学習パターン250に含まれた基準隠れノード252,256を基準に説明し、学習パターンから除外される基準隠れノードは黒い円で表示する。
【0039】
学習パターン240は、前の時間区間T−1における学習パターンを示し、学習パターン250は、現在の時間区間Tにおける学習パターンを示し、学習パターン260は、次の時間区間T+1における学習パターンを示す。前の時間区間T−1、現在の時間区間T、及び次の時間区間T+1における学習パターン240,250,260全てが学習に用いられる。
【0040】
ニューラルネットワークは、入力層210、隠れ層220、及び出力層230を含む。入力層210は最下層であって、シーケンシャルデータが学習データとして入力される層であり、隠れ層220は、入力層210及び出力層230の間に存在する中間層であり、出力層230は、最上層であって、入力層210から入力されたシーケンシャルデータに対する出力値を出力する層である。入力層210、隠れ層220、及び出力層230のそれぞれは、複数のノードを含んでもよい。この中においても隠れ層220に含まれたノードを隠れノードと言う。
【0041】
ニューラルネットワークによって伝達される情報の流れを考慮する際、ニューラルネットワークは、入力層210、隠れ層220、出力層230方向に接続される。入力層210のノードに学習データが入力されれば、学習データは、入力層210のノードに変換されて隠れ層220に伝達され、最終的に出力層230で出力値が生成される。
図2においては、説明の便宜のために1つの隠れ層220だけを図示したが、実施形態の範囲はこれに限定されるものではなく、ニューラルネットワークは複数の隠れ層を含んでもよい。
【0042】
ニューラルネットワーク学習装置は、シーケンシャルデータをニューラルネットワークの入力層210に入力させ、シーケンシャルデータに対する分類結果がニューラルネットワークの出力層230から出力されるようにニューラルネットワークを学習させる。ニューラルネットワーク学習装置によって学習されたニューラルネットワークは、互いに異なる時間区間において、隠れノード間の再帰的接続が存在するリカレントニューラルネットワークであってもよい。ニューラルネットワーク学習装置によってニューラルネットワークがシーケンシャルデータを学習する際、隠れ層に含まれた隠れノードは、次の時間区間における隠れノードに接続されてもよい。現在の時間区間Tにおける隠れノードの出力値が次の時間区間T+1における隠れノードに入力されてもよい。
【0043】
ニューラルネットワーク学習装置は、シーケンシャルデータを学習する際、複数の隠れノードのうち一部が除外された学習パターンに基づいてニューラルネットワークを学習させる。ニューラルネットワーク学習装置は、隠れノードのうち学習過程から除外(又は、無視)される基準隠れノードを任意に選択することができる。
【0044】
一例として、ニューラルネットワーク学習装置は、1つのシーケンシャルデータが入力される度に隠れノードの中から基準隠れノードを選択することができる。選択された基準隠れノードは、当該シーケンシャルデータに基づいた全学習過程から除外される。言い換えると、選択された基準隠れノードは、全時間区間の学習から排除されるため、当該基準隠れノードが学習されるためには、追加的なシーケンシャルデータが要求され得る。したがって、追加的なシーケンシャルデータの要求により、全隠れノードが十分に学習されるための時間は増加し得る。
【0045】
別の一例として、ニューラルネットワーク学習装置は、時間区間ごとに複数の隠れノードの中から基準隠れノードを任意に選択することができる。学習から除外される基準隠れノードが時間区間ごとに任意に選択されるため、前の時間区間で基準隠れノードに選択されて学習から排除されても、現在の時間区間では基準隠れノードとして選択されないため、学習に参加することができる。1つのシーケンシャルデータを用いても多くの隠れノードが学習され得る。ただし、前の時間区間において基準隠れノードとして選択されて学習されなかった隠れノードが現在の時間区間で学習されるためには、当該隠れノードが現在の時間区間において意味のある値を有さなければならない。したがって、当該隠れノードは、基準隠れノードに選択される前の値を現在の時間区間まで保持して学習過程に参加することができる。言い換えると、時間区間ごとに基準隠れノードを任意に選択するためには、複数の時間区間にわたって当該基準隠れノードの値が保持される必要があり、このような過程に対しては
図2に示された学習パターン240,250,260を参照して後述する。
【0046】
図2を参照すると、学習パターン240,250,260から除外される基準隠れノードは、隠れノードの中から任意に選択され、互いに同一ではない。
【0047】
現在の時間区間Tの学習パターン250では隠れ層の両終端に位置するノードが基準隠れノード252,256として選択されて除外されてもよい。基準隠れノード252は、前の時間区間T−1における値を次の時間区間T+1まで保持してもよい。例えば、学習パターン240の隠れノード242、学習パターン250の基準隠れノード252、及び学習パターン260の隠れノード262は、全て同一の値を有してもよい。ここで、隠れノード又は基準隠れノードが有する値は、当該ノードにおける長期記憶値を意味する。長期記憶値は、下位層から伝達されたり上位層に伝達される値ではない当該隠れノードが複数の時間区間にわたって保持している値を意味する。
【0048】
同一に、基準隠れノード256は、前の時間区間T−1における値を次の時間区間T+1まで保持することができる。例えば、学習パターン240の隠れノード246、学習パターン250の基準隠れノード256、及び学習パターン260の基準隠れノード266は、全て同一の値を有してもよい。ただし、学習パターン260においては、基準隠れノード266を含むため、基準隠れノード256は、その次の時間区間T+2まで同一の値を保持することができる。
【0049】
一方、現在の時間区間Tの学習パターン250に含まれた隠れノード254は、複数の隠れノードのうち基準隠れノード252,256を除いた残りの隠れノードを示す。隠れノード254は、他の時間区間の隠れノードに接続されてもよい。言い換えると、隠れノード254は、前の時間区間T−1における学習パターン240の隠れノードに接続されてもよい。隠れノード254は、次の時間区間T+1における学習パターン260の隠れノードに接続されてもよい。ただし、隠れノード254が学習パターン260の基準隠れノード266と接続されても基準隠れノード266は隠れノード254から伝達された値を無視して、学習パターン250の基準隠れノード256の値を保持することができる。
【0050】
図3は、一実施形態に係るニューラルネットワークを学習させる具体的な過程を説明するための図である。
【0051】
図3を参照すると、ニューラルネットワークに含まれた入力層310、隠れ層320、及び出力層330に含まれた複数のノードの接続が図示されている。
図3において、実線の接続は、ノード間において正常に接続されたことを示し、点線の接続は、ノード間において接続が無視されることを示し、一点鎖線の接続は、当該隠れノードの値が次の時間区間においても保持されることを示す。
【0052】
図3において、学習パターン340は、前の時間区間T−1における学習パターンを示し、学習パターン350は、現在の時間区間Tにおける学習パターンを示し、学習パターン360は、次の時間区間T+1における学習パターンを示す。
【0053】
前の時間区間T−1においては、隠れノード342,344,346の中から基準隠れノード344が選択された。基準隠れノード344と上位層である出力層330のノードとの間の接続は無視されてもよい。言い換えると、基準隠れノード344は、上位層である出力層330に出力される値を遮断することができる。
【0054】
他の時間区間のノードとの接続を調べると、基準隠れノード344と現在の時間区間の隠れ層のノードとの間の接続は、基本的に無視されるが、例外的に基準隠れノード344と現在の時間区間における自分自身の隠れノード354との間の接続は、保持され得る。したがって、前の時間区間T−1における基準隠れノード344の値は、現在の時間区間Tまで保持され得る。ここで、保持される値は、長期記憶値を意味する。
【0055】
基準隠れノード344と下位層である入力層310のノードとの間の接続は、無視されない。ただし、基準隠れノード344において、入力層310から入力される値を用いずに無視するため、基準隠れノード344は、入力層310から入力される値を遮断することができる。
【0056】
前の時間区間T−1において、隠れノード342,344,346の中から基準隠れノード344を除いた残りの隠れノード342,346は、上位層330のノードだけでなく現在の時間区間の隠れノード352,354,356に接続され得る。
【0057】
現在の時間区間Tにおいては、隠れノード352,354,356の中から基準隠れノード352,354が選択された。基準隠れノード352,354と上位層である出力層のノードとの間の接続は、無視されてもよい。言い換えると、基準隠れノード352,354は、上位層である出力層に出力される値を遮断することができる。
【0058】
他の時間区間のノードとの接続を調べると、基準隠れノード352と次の時間区間T+1における隠れ層の隠れノードとの間の接続は、基本的に無視されるが、例外的に基準隠れノード352と次の時間区間における自分自身の隠れノード362との間の接続は、保持され得る。基準隠れノード352は、前の時間区間T−1における隠れノードと接続されてもよい。ただし、基準隠れノード352において、前の時間区間T−1における自分自身の隠れノード342の値だけ保持して、それ以外の隠れノード344,346の値は無視してもよい。したがって、現在の時間区間Tの基準隠れノード352は、前の時間区間T−1における値を次の時間区間T+1まで保持することができる。
【0059】
同様に、基準隠れノード354も前の時間区間T−1における隠れノード344の値を次の時間区間T+1まで保持することができる。
【0060】
基準隠れノード352,354と下位層である入力層のノードとの間の接続は、無視されない。ただし、基準隠れノード352,354において、入力層から入力される値を用いずに無視するため、基準隠れノード352,354は、入力層から入力される値を遮断することができる。
【0061】
現在の時間区間Tにおいて、隠れノード352,354,356の中から基準隠れノード352,354を除いた残りの隠れノード356は、上位層のノードだけでなく次の時間区間の隠れノード362,364,366に接続され得る。
【0062】
図4は、一実施形態に係る隠れ層に含まれた隠れノードの値を更新する過程及びこれを用いた学習アルゴリズムを説明するための図である。
【0063】
一実施形態に係るニューラルネットワーク学習装置が学習させるニューラルネットワークは、LSTM(Long Short−Term Memory)構造のリカレントニューラルネットワークである。LSTM構造のリカレントニューラルネットワークは、3つのゲートを用いることによって、他のタイプのニューラルネットワークに比べてシーケンスの長さが長いシーケンシャルデータの認識率を高めることができる。
【0064】
図4を参照すると、一実施形態に係るニューラルネットワークの隠れ層に含まれた隠れノード400が図示されている。隠れノード400は、入力ゲート410、忘却ゲート420、セル430、及び出力ゲート440を含む。
【0065】
入力ゲート410は、隠れノード400が含まれた隠れ層の下位層から伝達される値を制御することができる。もし、入力ゲート410の出力値が「0」である場合、隠れノード400は、下位層から伝達される値を無視することができる。入力ゲート410の出力値b
tlは、式(1)のように算出され得る。
【0067】
ここで、a
tlは、入力ゲート410に入力される値を示し、x
tiは、現在の時間区間の下位層から伝達された値を示し、w
ilは、x
tiに適用される重みを示す。b
t−1hは、前の時間区間における自分自身の隠れノードの出力値を示し、w
hlは、b
t−1hに適用される重みを示す。s
t−1cは、前の時間区間のセル430の出力値を示し、w
clは、s
t−1cに適用される重みを示す。f()は、ゲートの活性化関数(activation function)を示す。Iは、下位層に含まれたノードの個数を示し、Hは、隠れノード400が含まれた隠れ層に属したノードの個数を示し、Cは、隠れノード400に含まれたセル430の個数を示す。
【0068】
忘却ゲート420は、前の時間区間における隠れノードから伝達される値を制御することができる。忘却ゲート420の出力値が「0」である場合、隠れノード400は、前の時間区間における隠れノードから伝達される値を無視することができる。忘却ゲート420の出力値b
tφは、下記の式(2)のように算出され得る。
【0070】
ここで、a
tΦは、忘却ゲート420に入力される値を示し、w
iΦ、w
h、w
cΦは、それぞれx
ti、b
t−1h、s
t−1cに適用される重みを示す。
【0071】
もし、隠れノード400が基準隠れノードとして選択されて除外される場合、忘却ゲート420は「1」を出力することができる。
【0072】
セル430は、隠れノード400のメモリ値を含んでもよい。セル430の出力値s
tcは、下記の式(3)のように算出され得る。
【0074】
ここで、a
tcは、セル430に入力される値を示し、w
ic、w
hcは、それぞれx
ti、b
t−1hに適用される重みを示す。g()は、セル入力活性化関数(cell input activation function)を示す。
【0075】
もし、隠れノード400が基準隠れノードとして選択されて除外される場合、セル430に入力される値a
tcは、「0」の値を有し、忘却ゲート420の出力値b
tlは、「1」の値を有するため、セル430の出力値s
tcは、前の時間区間におけるセルの出力値であるs
t−1cと同一になる。したがって、隠れノード400が基準隠れノードとして選択される場合、隠れノード400は、前の時間区間の値を次の時間区間まで保持することができる。
【0076】
出力ゲート440は、隠れノード400が含まれた隠れ層の上位層に伝達される値を制御することができる。もし、出力ゲート440の出力値が「0」である場合、隠れノード400は、上位層に隠れノード400の出力値を伝達することができない。出力ゲート440の出力値b
twは、下記の式(4)のように算出することができる。
【0078】
ここで、a
twは、出力ゲート440に入力される値を示し、w
iω、w
hw、w
cwは、それぞれx
ti、b
t−1h、s
tcに適用される重みを示す。
【0079】
隠れノード400の最終的な出力値b
tcは、下記の式(5)のように算出することができる。
【0081】
ここで、h()は、セル出力活性化関数(cell output activation function)を示す。
【0082】
上述した内容は、ニューラルネットワークの入力層に入力されたシーケンシャルデータが出力層によって出力値を出力する際の隠れノードの状態を説明することによって、ニューラルネットワークを用いて伝達されるデータのフォワードパス(forward pass)に該当する。ニューラルネットワークを用いて伝達されるデータのフォワードパスによって、ニューラルネットワーク学習装置は、各隠れノードの値を更新することができる。さらに、ニューラルネットワーク学習装置は、出力に出力される出力値によってエラーを推定することができる。
【0083】
ニューラルネットワーク学習装置は、出力層から始まり、隠れ層と入力層の逆方向にエラーを伝搬してエラーを減らす方向に結合重みを更新することができる。このような逆方向にエラーを伝搬することをバックワードパス(backward pass)と言う。ここでは、出力層、隠れ層、入力層の逆方向に進行するだけでなく、時間の順序も逆方向に進行することになる。フォワードパスの場合、tが増加するが、バックワードパスの場合、tは減少する方向に進行される。
【0084】
ニューラルネットワーク学習装置は、現在の設定された結合重みがどれくらい最適に近いのかを測定するための目的関数を定義し、目的関数の結果に基づいて結合重みを続けて変更して、学習を繰り返し行うことができる。例えば、目的関数は、ニューラルネットワークが学習データに基づいて実際に出力した出力値と出力されることを所望する期待値との間のエラーを算出するためのエラー関数であってもよい。ニューラルネットワーク学習装置は、エラー関数の値を減らす方向に結合重みを更新してもよい。
【0085】
バックワードパスにおいて、隠れノード400に入力される値ε
tc、セル430に入力されるε
tsは、下記の式(6)のように定義され得る。
【0087】
ここで、Oは、目的関数であって、ニューラルネットワークにおけるクロスエントロピー誤差(cross−entropy error)を示す。
【0088】
上位層において、隠れノード400に入力される値ε
tcは、下記の式(7)のように算出することができる。
【0090】
ここで、δ
tkは、現在の時間区間の上位層から伝達された値を示し、δ
t+1hは、次の時間区間における自分自身の隠れノードから出力される値を示し、w
ck、w
chは、それぞれδ
tk、δ
t+1hに適用される重みを示す。Kは、上位層に含まれたノードの個数を示す。
【0091】
もし、隠れノード400が基準隠れノードとして選択されて除外される場合、隠れノード400は、隠れノード400に入力される値を無視することができる。
【0092】
出力ゲート440から出力される値δ
twは、下記の式(8)のように算出することができる。
【0094】
セル430に入力される値ε
ts、セル430から出力される値δ
tcは、下記の式(9)のように算出することができる。
【0096】
ここで、ε
t+1sは、次の時間区間における自分自身の隠れノードのセルに入力される値を示し、δ
t+1lは、次の時間区間における自分自身の隠れノードの入力ゲート410から出力される値を示し、δ
t+1φは、次の時間区間における自分自身の隠れノードの忘却ゲート420から出力される値を示す。
【0097】
もし、隠れノード400が基準隠れノードとして選択されて除外される場合、セル430は、「0」を出力することができる。
【0098】
忘却ゲート420から出力される値δ
tφは、下記の式(10)のように算出することができる。
【0100】
もし、隠れノード400が基準隠れノードとして選択されて除外される場合、忘却ゲート420は、「0」を出力することができる。
【0101】
隠れノード400から出力される値δ
tlは、下記の式(11)のように算出することができる。
【0103】
上述したように、ニューラルネットワーク学習装置は、エラー逆電波学習によってニューラルネットワークに含まれたノード間の結合重みを更新することができる。
【0104】
図5は、一実施形態に係る認識装置を示す図である。
図5を参照すると、認識装置500は、受信部510及び認識部520を含む。例えば、認識装置500は、音声認識、映像認識、身体状態認識、又は、手書き文字認識などの領域において広範囲に用いてもよい。認識装置500は、ソフトウェアモジュール、ハードウェアモジュール、又は、これらの組み合わせで実現してもよい。認識装置500は、スマートフォン、タブレットPC、ラップトップコンピュータ、デスクトップコンピュータ、テレビ、ウェアラブル装置、セキュリティシステム、スマートホームシステムなどの様々なコンピュータ装置及び/又はシステムに搭載されてもよい。
【0105】
受信部510はシーケンシャルデータを受信する。シーケンシャルデータは、音声データ、映像データ、生体データ、又は、筆跡データなどのように時間性ないし順序を有するデータであってもよい。
【0106】
認識部520は、既に学習されたニューラルネットワークを用いて入力されるシーケンシャルデータを認識する。一例として、認識部520は、入力された音声データがいかなる文章(又は、単語)であるかを認識したり、動画に現れた人物が誰であるかを認識することができる。又は、認識部520は、心電図(ECG;electrocardiogram)、脳電図(EEG;electroencephalogram)などの生体信号を分析してユーザの身体状態を認識したり、又はユーザの動作を分析して入力された筆跡を認識することができる。別の一例として、認識部520は、DNA(deoxyribonucleic acid)塩基配列決定装置(DNA sequencing device)において、観察信号から正しいDNA塩基配列を推定するのに用いてもよい。
【0107】
例えば、認識部520は、シーケンシャルデータから特徴値を抽出し、抽出された特徴値を分類器に入力し、入力されたシーケンシャルデータの分類結果又は認識結果を出力してもよい。
【0108】
認識部520が用いる既に学習されたニューラルネットワークは、複数の隠れノードを含んでもよい。複数の隠れノードは、現在の時間区間に先行する時間区間における当該隠れノードの値及び当該隠れノードの値が現在の時間区間まで伝達される確率に基づいて算出された値を含んでもよい。複数の隠れノードの値を算出する過程に関しては、
図6を参照して後述する。
【0109】
ここで、既に学習されたニューラルネットワークは、複数の隠れノードのうち少なくとも1つの基準隠れノードを除いた残りの隠れノードに基づいて学習され得る。ニューラルネットワークが学習される際、基準隠れノードは、時間区間ごとに複数の隠れノードの中から任意に選択されて除外され得る。基準隠れノードは、前の時間区間における値を次の時間区間まで保持することができる。残りの隠れノードは、他の時間区間の隠れノードに接続され得る。
【0110】
図6は、一実施形態に係る既に学習されたニューラルネットワークに基づいて認識を行う際の隠れノードの値を決定する過程を説明するための図である。
【0111】
図6を参照すると、各タイムスタンプによる特定の既に学習されたニューラルネットワークの認識パターン610,620,630が図示されている。
図6においては、一実施形態に係る既に学習されたニューラルネットワークに基づいた認識方法を説明するために一部の接続線を省略する。説明の便宜のために現在の時間区間Tの学習パターン630に含まれた隠れノード636を基準に説明する。認識装置が用いるニューラルネットワークを学習する際、ニューラルネットワークに含まれた隠れノードは、pの確率で除外されると仮定する。
【0112】
学習パターン630は、現在の時間区間Tにおける学習パターンを示し、学習パターン620は、第1の前の時間区間T−1における学習パターンを示し、学習パターン610は、第2の前の時間区間T−2における学習パターンを示す。
【0113】
認識装置は、現在の時間区間に先行する時間区間における当該隠れノードの値と当該隠れノードの値が現在の時間区間まで伝達される確率に基づいて現在の時間区間Tにおける隠れノード636の値とを決定することができる。
【0114】
例えば、第1の前の時間区間T−1の隠れノード626の値Aが隠れノード636に伝達されるためには、隠れノード626が除外されてはならないため、隠れノード626の値Aが隠れノード636に伝達される確率は、1−pである。
【0115】
第2の前の時間区間T−2の隠れノード616の値Bが隠れノード636に伝達されるためには、隠れノード616が除外されずに、隠れノード626が除外されなければならない。したがって、隠れノード616の値Bが隠れノード636に伝達される確率は、p(1−p)である。
【0116】
第3の前の時間区間の隠れノードの値Cが隠れノード636に伝達されるためには、第3の前の時間区間の隠れノードが除外されずに、隠れノード616,626が除外されなければならない。したがって、第3の前の時間区間の隠れノードの値Cが隠れノード636に伝達される確率は、p
2(1−p)である。
【0117】
上述された方法により、現在の時間区間Tにおける隠れノード636は、「A
*(1−p)+B
*p(1−p)+C
*p2(1−p)+…」の値を有することができる。ここで、算出された隠れノード363の値は、長期記憶値を意味する。長期記憶値は、下位層から伝達されたり、上位層に伝達される値ではない、隠れノードが複数の時間区間にわたって保持している値を意味する。
【0118】
図7は、一実施形態に係るニューラルネットワークの学習方法を示す図である。
図7は、一実施形態に係るニューラルネットワーク学習装置の動作方法を示した動作フローチャートである。
図7を参照すると、ニューラルネットワークの学習方法は、ニューラルネットワークに含まれた複数の隠れノードのうち少なくとも1つの基準隠れノードを選択するステップS710及び複数の隠れノードのうち少なくとも1つの基準隠れノードを除いた残りの隠れノードに基づいてニューラルネットワークを学習させるステップS720を含む。
【0119】
図7に示された各ステップには、
図1〜
図4によって上述した事項がそのまま適用されるため、より詳細な説明は省略する。
【0120】
図8は、一実施形態に係る認識方法を示す図である。
図8は、一実施形態に係る認識装置の動作方法を示した動作フローチャートである。
図8を参照すると、認識方法は、シーケンシャルデータを受信するステップS810及び複数の隠れノードを含むニューラルネットワークを用いてシーケンシャルデータを認識するステップS820を含む。ここで、複数の隠れノードは、現在の時間区間に先行する時間区間における当該隠れノードの値と当該隠れノードの値が現在の時間区間まで伝達される確率に基づいて算出された値とを有する。ニューラルネットワークは、複数の隠れノードのうち少なくとも1つの基準隠れノードを除いた残りの隠れノードに基づいて学習される。
【0121】
図8に示された各ステップには、
図1〜
図6によって上述した事項がそのまま適用されるため、より詳細な説明は省略する。
【0122】
実施形態は、互いに異なる一部の隠れノードが除外された学習パターンに基づいてニューラルネットワークを学習させることによって、リカレントニューラルネットワークでアンサンブル効果を得ることができ、学習する所要時間を効果的に減少させることができる。
【0123】
実施形態は、学習から除外された基準隠れノードが前の時間区間における値を次の時間区間まで保持することによって、LSTM構造のリカレントニューラルネットワークにおいてもドロップアウト方法を適用することができる。
【0124】
実施形態は、全ての隠れノードではない一部の隠れノードだけを用いてニューラルネットワークを学習させることによって、ニューラルネットワークが学習データに過度に適応し、実際に認識しようとする対象に対する認識率が低くなる過剰適合を効果的に改善させることができる。
【0125】
実施形態は、一部の隠れノードだけを用いてニューラルネットワークを学習させることによって、学習の結果として隠れノードの結合重みが互いに似てくる相互適応(co−adaptation)を共に解決することができる。
【0126】
以上で説明された実施形態はハードウェア構成要素、ソフトウェア構成要素、及び/又はハードウェア構成要素及びソフトウェア構成要素の組合で実現してもよい。例えば、実施形態で説明された装置、方法及び構成要素は、例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサー、又は、命令(instruction)を実行して応答できる異なるいかなる装置のように、1つ以上の汎用コンピュータ又は特殊目的コンピュータを用いて実現されてもよい。処理装置はオペレーティングシステム(OS)及び前記オペレーティングシステム上で行われる1つ以上のソフトウェアアプリケーションを行ってもよい。また、処理装置は、ソフトウェアの実行に応答して、データをアクセス、格納、操作、処理及び生成してもよい。理解の便宜のために、処理装置は1つが使用されるものと説明される場合もあるが、当該の技術分野で通常の知識を有する者は、処理装置が複数の処理要素及び/又は複数類型の処理要素を含んでいることが分かる。例えば、処理装置は複数のプロセッサ又は1つのプロセッサ及び1つのコントローラを含んでもよい。また、並列プロセッサのような、他の処理構成も可能である。
【0127】
ソフトウェアはコンピュータプログラム、コード、命令、又は、これらのうちの1つ以上の組合を含んでもよく、希望通りに動作するように処理装置を構成したり独立的または結合的に処理装置を命令してもよい。ソフトウェア及び/又はデータは、処理装置によって解釈されたり処理装置に命令又はデータを提供するためどのような類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、又は送信される信号波に永久的に又は一時的に具体化できる。ソフトウェアは、ネットワークに接続されたコンピュータシステム上に分散し、分散された方法で格納されたり実行されてもよい。ソフトウェア及びデータは1つ以上のコンピュータ読取可能な記録媒体に格納されてもよい。
【0128】
実施形態に係る方法は、多様なコンピュータ手段を介して実施することができるプログラム命令の形態で実現され、コンピュータで読取可能な媒体に記録してもよい。前記記録媒体は、プログラム命令、データファイル、データ構造などを単独で又は組合せて含んでもよい。前記記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり、使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、光ディスクのような光磁気媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれてもよい。プログラム命令の例には、コンパイラによって作られるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行できる高級言語コードが含まれる。上述のハードウェア装置は、本発明の動作を行うために1つ以上のソフトウェアモジュールとして動作するように構成されてもよく、その逆も同様である。
【0129】
上述したように、実施形態が限定された実施形態と図面によって説明されたが、当該技術分野における通常の知識を有する者であれば、前記の記載から様々な修正及び変形が可能である。例えば、説明された技術が説明された方法と異なる順序で行われたり、及び/又は説明されたシステム、構造、装置、回路などの構成要素が説明された方法と異なる形態で結合又は組み合わせたり、他の構成要素又は均等物によって代替、置換されても適切な結果が達成され得る。したがって、本発明の範囲は、開示された実施形態に限定されるものではなく、特許請求の範囲及び特許請求の範囲と均等なものなどによって定められるものである。