(57)【特許請求の範囲】
【請求項１】
ニューラルネットワークに含まれたノードのうち少なくとも１つのノードを選択するステップと、
前記選択されたノードが属するレイヤに新しいノードを生成するステップと、
前記新しいノードの接続加重値を設定するステップと、
を含み、
前記設定するステップは、
前記選択されたノードの接続加重値のうち少なくとも一部を選択するステップと、
前記新しいノードで前記選択された少なくとも一部の接続加重値に対応する接続加重値を前記選択された少なくとも一部の接続加重値に設定するステップと、
前記選択されたノードで前記選択された少なくとも一部の接続加重値を予め決定した初期値に設定するステップと、
を含む、ニューラルネットワーク拡張方法。
【請求項２】
ニューラルネットワークに含まれたノードのうち少なくとも１つのノードを選択するステップと、
前記選択されたノードが属するレイヤに新しいノードを生成するステップと、
前記新しいノードの接続加重値を設定するステップと、
を含み、
前記設定するステップは、
前記新しいノードの入力接続加重値を前記選択されたノードの入力接続加重値に設定するステップと、
前記選択されたノードの出力接続加重値のうち一部を選択するステップと、
前記新しいノードで前記選択された一部の出力接続加重値に対応する接続加重値を前記選択された一部の出力接続加重値に設定するステップと、
前記選択されたノードで前記選択された一部の出力接続加重値を予め決定した初期値に設定するステップと、
を含む、ニューラルネットワーク拡張方法。
【請求項３】
前記ニューラルネットワークの拡張が必要であるか否かを判断するステップ、
をさらに含む、請求項１または２に記載のニューラルネットワーク拡張方法。
【請求項４】
前記判断するステップは、
前記ニューラルネットワークの性能をモニタリングするステップと、
前記ニューラルネットワークの性能が向上する程度が予め決定した第１閾値よりも小さい場合、前記ニューラルネットワークの拡張が必要であると判断するステップと、
を含む、請求項３に記載のニューラルネットワーク拡張方法。
【請求項５】
前記判断するステップは、
前記ニューラルネットワークの性能をモニタリングするステップと、
前記ニューラルネットワークの性能が向上する程度が予め決定した第１閾値よりも小さく、前記ニューラルネットワークの以前拡張後の前記ニューラルネットワークの性能が向上した程度が予め決定した第２閾値よりも小さい場合、前記ニューラルネットワークの学習を終了させるステップと、
をさらに含む、請求項３に記載のニューラルネットワーク拡張方法。
【請求項６】
前記選択するステップは、前記ノードの活性化頻度数情報及び活性化エントロピー情報のうち少なくとも１つに基づいて前記少なくとも１つのノードを選択するステップを含む、
請求項１乃至５いずれか一項に記載のニューラルネットワーク拡張方法。
【請求項７】
前記活性化頻度数情報は、予め決定した時間区間内、前記ノードそれぞれが活性化する頻度数を含む、
請求項６に記載のニューラルネットワーク拡張方法。
【請求項８】
前記活性化エントロピー情報は、予め決定した時間区間内、前記ノードそれぞれが活性化状態と不活性状態の間で遷移する回数を含む、
請求項６または７に記載のニューラルネットワーク拡張方法。
【請求項９】
前記ノードのうち予め決定した時間区間で活性化頻度数が最も大きいノードが選択される、
請求項６乃至８いずれか一項に記載のニューラルネットワーク拡張方法。
【請求項１０】
前記ノードのうち予め決定した時間区間で活性化エントロピーが予め決定した第３閾値よりも小さく、活性化頻度数が予め決定した第４閾値よりも大きいノードが選択される、
請求項６乃至９いずれか一項に記載のニューラルネットワーク拡張方法。
【請求項１１】
前記生成するステップは、
前記レイヤの以前レイヤに含まれたノードと前記新しいノードとの間を接続するステップと、
前記レイヤの次のレイヤに含まれたノードと前記新しいノードとの間を接続するステップと、
を含む、請求項１乃至１０いずれか一項に記載のニューラルネットワーク拡張方法。
【請求項１２】
前記新しいノードの接続加重値を予め決定した初期値に設定するステップをさらに含む、
請求項１１に記載のニューラルネットワーク拡張方法。
【請求項１３】
前記選択されたノードを含むレイヤは、前記ニューラルネットワークの隠れレイヤを含む、
請求項１乃至１２いずれか一項に記載のニューラルネットワーク拡張方法。
【請求項１４】
前記選択されたノードの接続加重値のうち少なくとも一部を選択するステップは、
前記選択されたノードの接続加重値を第１グループ及び第２グループに分割するステップと、
前記第１グループ及び前記第２グループのいずれか１つのグループに属する接続加重値を選択するステップと、
を含む、請求項１に記載のニューラルネットワーク拡張方法。
【請求項１５】
前記選択されたノードの接続加重値は、前記第１グループに属する接続加重値の和と前記第２グループに属する接続加重値の和との間の差が予め決定した第５閾値以下になるよう前記第１グループ及び前記第２グループに分割する、
請求項１４に記載のニューラルネットワーク拡張方法。
【請求項１６】
前記選択されたノードの活性化特性に基づいて前記新しいノードの活性化特性を設定するステップをさらに含む、
請求項１または２に記載のニューラルネットワーク拡張方法。
【請求項１７】
前記新しいノードを含むように拡張されたニューラルネットワークを学習させるステップをさらに含む、
請求項１または２に記載のニューラルネットワーク拡張方法。
【請求項１８】
初期ニューラルネットワークは、予め決定した数以下のノードを含む複数の隠れレイヤを含む、
請求項１または２に記載のニューラルネットワーク拡張方法。
【請求項１９】
前記選択するステップは、前記複数の隠れレイヤに含まれたノードのうち少なくとも１つのノードを選択するステップを含む、
請求項１８に記載のニューラルネットワーク拡張方法。
【請求項２０】
ニューラルネットワークを格納するメモリと、
活性化情報に基づいて前記ニューラルネットワークのノードを選択し、前記選択されたノードを含むレイヤに新しいノードを追加することによって前記ニューラルネットワークを拡張するプロセッサと、
を含み、
前記拡張することは、
前記選択されたノードの接続加重値のうち少なくとも一部を選択し、
前記新しいノードで前記選択された少なくとも一部の接続加重値に対応する接続加重値を前記選択された少なくとも一部の接続加重値に設定し、かつ、
前記選択されたノードで前記選択された少なくとも一部の接続加重値を予め決定した初期値に設定する、ことを含む、
ニューラルネットワーク拡張装置。
【請求項２１】
前記プロセッサは、前記選択されたノードの接続加重値に基づいて前記新しいノードの接続加重値を設定する、
請求項２０に記載のニューラルネットワーク拡張装置。
【請求項２２】
前記プロセッサは、トレーニングデータを用いて前記拡張されたニューラルネットワークを学習させることで前記新しいノードの接続加重値を調整する、
請求項２０または２１に記載のニューラルネットワーク拡張装置。
【請求項２３】
前記プロセッサは、トレーニングデータメモリストレージのトレーニングデータを前記拡張されたニューラルネットワークに適用し、前記拡張されたニューラルネットワークの活性化パターンに基づいて隠れレイヤの拡張が要求されるか否かを決定し、前記隠れレイヤの拡張が要求されるとの判断に応じて、前記ニューラルネットワークの隠れレイヤ内のノード数を増加させる、
請求項２０乃至２２いずれか一項に記載のニューラルネットワーク拡張装置。
【請求項２４】
入力装置をさらに含み、
前記プロセッサは、出力データを取得するために、前記入力装置を用いて取得された入力データを前記ニューラルネットワークに適用する、
請求項２２乃至２３いずれか一項に記載のニューラルネットワーク拡張装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ニューラルネットワーク構造拡張方法、次元縮小方法、及びその方法を用いる装置に関する。
【背景技術】
【０００２】
近年、入力パターンを特定のグループに分類する問題を解決するために、人が有する効率的なパターン認識方法を実際にコンピュータに適用させようとする研究が盛んに行われている。このような研究の１つとして、人の生物学的な神経細胞の特性を数学的な表現によるモデリングである人工ニューラルネットワーク（ａｒｔｉｆｉｃｉａｌ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）に対する研究が挙げられる。入力パターンを特定のグループに分類する問題を解決するために、人工ニューラルネットワークは人が有している学習という能力を模倣したアルゴリズムを用いる。このアルゴリズムを用いて、人工ニューラルネットワークは入力パターンと出力パターンとの間のマッピングを生成し、このようなマッピングを生成する能力は、人工ニューラルネットワークの学習能力として表現される。また、人工ニューラルネットワークは、学習された結果に基づいて学習に利用されていない入力パターンに対して比較的に正しい出力を生成できる一般化能力を有する。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の実施形態は、ニューラルネットワークを次第に拡張及び学習させる技術を提供する。実施形態は、拡張以前に学習された結果を保持しながら、次第にもっと精巧にニューラルネットワークを学習させる技術を提供する。
【課題を解決するための手段】
【０００４】
一側面に係るニューラルネットワーク拡張方法は、ニューラルネットワークに含まれたノードのうち少なくとも１つのノードを選択するステップと、前記選択されたノードが属するレイヤに新しいノードを生成するステップと、前記新しいノードの接続加重値を設定するステップとを含む。
【０００５】
前記ニューラルネットワーク拡張方法は、前記ニューラルネットワークの拡張が必要であるか否かを判断するステップをさらに含んでもよい。
【０００６】
前記判断するステップは、前記ニューラルネットワークの性能をモニタリングするステップと、前記ニューラルネットワークの性能が向上する程度が予め決定した第１閾値よりも小さい場合、前記ニューラルネットワークの拡張が必要であると判断するステップとを含んでもよい。
【０００７】
前記判断するステップは、前記ニューラルネットワークの性能をモニタリングするステップと、前記ニューラルネットワークの性能が向上する程度が予め決定した第１閾値よりも小さく、前記ニューラルネットワークの以前拡張後の前記ニューラルネットワークの性能が向上した程度が予め決定した第２閾値よりも小さい場合、前記ニューラルネットワークの学習を終了させるステップとを含んでもよい。
【０００８】
前記選択するステップは、前記ノードの活性化頻度数情報及び活性化エントロピー情報のうち少なくとも１つに基づいて前記少なくとも１つのノードを選択するステップを含んでもよい。
【０００９】
前記ノードのうち予め決定した時間区間で活性化頻度数が最も大きいノードが選択されてもよい。前記ノードのうち予め決定した時間区間で活性化エントロピーが予め決定した第３閾値よりも小さく、活性化頻度数が予め決定した第４閾値よりも大きいノードが選択されてもよい。
【００１０】
前記活性化頻度数情報は、予め決定した時間区間内、前記ノードそれぞれが活性化する頻度数を含んでもよい。前記活性化エントロピー情報は、予め決定した時間区間内、前記ノードそれぞれが活性化状態と不活性状態の間で遷移する回数を含んでもよい。
【００１１】
前記生成するステップは、前記レイヤの以前レイヤに含まれたノードと前記新しいノードとの間を接続するステップと、前記レイヤの次のレイヤに含まれたノードと前記新しいノードとの間を接続するステップとを含んでもよい。
【００１２】
前記ニューラルネットワーク拡張方法は、前記新しいノードの接続加重値を予め決定した初期値に設定するステップをさらに含んでもよい。
【００１３】
前記選択されたノードを含むレイヤは、前記ニューラルネットワークの隠れレイヤを含んでもよい。
【００１４】
前記設定するステップは、前記選択されたノードの接続加重値のうち少なくとも一部を選択するステップと、前記新しいノードで前記選択された少なくとも一部の接続加重値に対応する接続加重値を前記選択された少なくとも一部の接続加重値に設定するステップとを含んでもよい。前記設定するステップは、前記選択されたノードで前記選択された少なくとも一部の接続加重値を予め決定した初期値に設定するステップをさらに含んでもよい。
【００１５】
前記選択されたノードの接続加重値のうち少なくとも一部を選択するステップは、前記選択されたノードの接続加重値を第１グループ及び第２グループに分割するステップと、前記第１グループ及び前記第２グループのいずれか１つのグループに属する接続加重値を選択するステップとを含んでもよい。
【００１６】
前記選択されたノードの接続加重値は、前記第１グループに属する接続加重値の和と前記第２グループに属する接続加重値の和との間の差が予め決定した第５閾値以下になるよう前記第１グループ及び前記第２グループに分割してもよい。
【００１７】
前記設定するステップは、前記新しいノードの入力接続加重値を前記選択されたノードの入力接続加重値に設定するステップと、前記選択されたノードの出力接続加重値のうち一部を選択するステップと、前記新しいノードで前記選択された一部の出力接続加重値に対応する接続加重値を前記選択された一部の出力接続加重値に設定するステップと、前記選択されたノードで前記選択された一部の出力接続加重値を予め決定した初期値に設定するステップとを含んでもよい。
【００１８】
前記ニューラルネットワーク拡張方法は、前記選択されたノードの活性化特性に基づいて前記新しいノードの活性化特性を設定するステップをさらに含んでもよい。
【００１９】
前記ニューラルネットワーク拡張方法は、前記新しいノードを含むように拡張されたニューラルネットワークを学習させるステップをさらに含んでもよい。
【００２０】
初期ニューラルネットワークは、予め決定した数以下のノードを含む複数の隠れレイヤを含んでもよい。前記選択するステップは、前記複数の隠れレイヤに含まれたノードのうち少なくとも１つのノードを選択するステップを含んでもよい。
【００２１】
他の一実施形態に係る次元縮小（ｄｉｍｅｎｓｉｏｎ  ｒｅｄｕｃｔｉｏｎ）方法は、入力レイヤ、１つ又はそれ以上の隠れレイヤ、及び出力レイヤを含むニューラルネットワークを学習させるステップと、前記ニューラルネットワークを学習させる間に、前記隠れレイヤの拡張が必要であるか否かを判断するステップと、前記隠れレイヤの拡張が必要であるとの判断に応じて、前記隠れレイヤを拡張させるステップとを含む。
【００２２】
前記次元縮小方法は、前記ニューラルネットワークを学習させる以前に、前記ニューラルネットワークを初期化するステップをさらに含んでもよい。前記初期化するステップは、前記入力レイヤで前記入力ディメンションに該当する数のノードを生成するステップと、前記隠れレイヤで予め決定した初期値に該当する少なくとも１つのノードを生成するステップと、前記出力レイヤで前記入力ディメンションに該当する数のノードを生成するステップとを含んでもよい。
【００２３】
前記判断するステップは、前記入力レイヤに入力される値と前記出力レイヤから出力される値との間の差に基づいて、前記ニューラルネットワークの性能をモニタリングするステップと、前記ニューラルネットワークの性能が向上する程度が予め決定した閾値よりも小さい場合、前記ニューラルネットワークの拡張が必要であると判断するステップとを含んでもよい。
【００２４】
前記隠れレイヤを拡張させるステップは、前記隠れレイヤに含まれたノードのうち少なくとも１つのノードを選択するステップと、前記隠れレイヤに新しいノードを生成するステップと、前記選択されたノードの接続加重値に基づいて前記新しいノードの接続加重値を設定するステップとを含んでもよい。
【００２５】
前記選択するステップは、前記ノードの活性化頻度数情報及び活性化エントロピー情報のうち少なくとも１つに基づいて前記少なくとも１つのノードを選択するステップを含んでもよい。
【００２６】
前記設定するステップは、前記選択されたノードの接続加重値のうち少なくとも一部を選択するステップと、前記新しいノードで前記選択された少なくとも一部の接続加重値に対応する接続加重値を前記選択された少なくとも一部の接続加重値に設定するステップとを含んでもよい。前記設定するステップは、前記選択されたノードで前記選択された少なくとも一部の接続加重値を予め決定した初期値に設定するステップをさらに含んでもよい。
【００２７】
前記次元縮小方法は、前記拡張された隠れレイヤを含むニューラルネットワークを学習させるステップをさらに含んでもよい。
【００２８】
更なる一実施形態に係るニューラルネットワーク拡張装置は、ニューラルネットワークを格納するメモリと、活性化情報に基づいて前記ニューラルネットワークのノードを選択し、前記選択されたノードを含むレイヤに新しいノードを追加することによって前記ニューラルネットワークを拡張するプロセッサとを含む。
【００２９】
前記プロセッサは、前記選択されたノードの接続加重値に基づいて前記新しいノードの接続加重値を設定してもよい。前記プロセッサは、トレーニングデータを用いて前記拡張されたニューラルネットワークを学習させることで前記新しいノードの接続加重値を調整してもよい。
【００３０】
前記プロセッサは、トレーニングデータメモリストレージのトレーニングデータを前記拡張されたニューラルネットワークに適用し、前記拡張されたニューラルネットワークの活性化パターンに基づいて隠れレイヤの拡張が要求されるか否かを決定し、前記隠れレイヤの拡張が要求されるとの判断に応じて、前記ニューラルネットワークの隠れレイヤ内のノード数を増加させてもよい。
【００３１】
前記ニューラルネットワーク拡張装置は、入力装置をさらに含み、前記プロセッサは、出力データを取得するために、前記入力装置を用いて取得された入力データを前記ニューラルネットワークに適用してもよい。
【００３２】
前記選択されたノードを含むレイヤは、前記ニューラルネットワークの隠れレイヤを含んでもよい。
【発明の効果】
【００３３】
本発明によると、実施形態はニューラルネットワークを拡張することで、ニューラルネットワークの認識性能を向上させる技術を提供できる。実施形態は、ニューラルネットワークを次第に拡張及び学習させる技術を提供できる。実施形態は、拡張以前に学習された結果を保持しながら、次第に精巧にニューラルネットワークを学習させる技術を提供できる。
【００３４】
本発明によると、ニューラルネットワークの拡張及び学習が反復されることにより、一定のレベル以上に複雑な複雑度又は一定のレベル以上に大きい規模のニューラルネットワークが最適に学習され得る。
【図面の簡単な説明】
【００３５】
【図１】一実施形態に係るニューラルネットワークを説明する図である。
【図２】一実施形態に係るニューラルネットワーク拡張方法を示した動作フローチャートである。
【図３】一実施形態に係るノードの選択を説明する図である。
【図４Ａ】実施形態に係る活性化パターンに基づいた動作を説明する図である。
【図４Ｂ】実施形態に係る活性化パターンに基づいた動作を説明する図である。
【図５】一実施形態に係る新しいノードの生成を説明する図である。
【図６】一実施形態に係る接続加重値の設定を説明する図である。
【図７】一実施形態に係る接続加重値の設定を説明する図である。
【図８】一実施形態に係る接続加重値の設定を説明する図である。
【図９】一実施形態に係るニューラルネットワークの拡張以後の追加的な学習を説明する図である。
【図１０】一実施形態に係るニューラルネットワークが拡張された後、追加的な学習が行われる方法を説明する図である。
【図１１Ａ】一実施形態に係るニューラルネットワークを拡張する方法を示す動作フローチャートである。
【図１１Ｂ】一実施形態に係るニューラルネットワーク拡張方法を用いた複数の繰り返し（ｉｔｅｒａｔｉｏｎ）を通したニューラルネットワークの漸進的な変化を示す図である。
【図１２】一実施形態に係るニューラルネットワーク拡張方法によって学習されるニューラルネットワークを説明する図である。
【図１３】一実施形態に係るニューラルネットワーク拡張方法によって学習されるニューラルネットワークを説明する図である。
【図１４】一実施形態に係るニューラルネットワーク拡張方法によって学習されるオートエンコーダを説明する図である。
【図１５】一実施形態に係るニューラルネットワーク拡張方法によって学習されるオートエンコーダを説明する図である。
【図１６】一実施形態に係るニューラルネットワーク学習装置を示すブロック図である。
【図１７】一実施形態に係る次元縮小装置を示すブロック図である。
【図１８】一実施形態に係る人工ニューロンを示す図である。
【図１９】一実施形態に係るニューラルネットワーク拡張装置を示すブロック図である。
【図２０】一実施形態に係る拡張されたニューラルネットワークを用いて入力データを分析する装置を示すブロック図である。
【発明を実施するための形態】
【００３６】
以下、実施形態を添付する図面を参照しながら詳細に説明する。各図面に提示された同一の参照符号は同一の部材を示す。
【００３７】
図１は、一実施形態に係るニューラルネットワーク（ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）を説明する図である。図１を参照すると、一実施形態に係るニューラルネットワーク１００は、接続線（ｅｄｇｅ）に連結された複数の人工ニューロンを用いて生物学的なシステムの算出能力を模倣する認識モデルである。ニューラルネットワーク１００は、ソフトウェア、ハードウェア、または、その組合せで実現できる。ニューラルネットワーク１００は、人工ニューラルネットワークと称する。
【００３８】
ニューラルネットワーク１００は、生物学的なニューロンの機能を単純化した人工ニューロンを用いる。人工ニューロンは、ノードと称する。人工ニューロンは、接続加重値を有する接続線によって相互接続してもよい。接続加重値は、接続線が有する特定の値として、シナプス加重値又は接続強度と称する。ニューラルネットワーク１００は、人工ニューロンによって人の認知作用や学習過程を行う。
【００３９】
図１８は、一実施形態に係る人工ニューロンを説明する図である。図１８を参照すると、人工ニューロンは胴体部に該当するノード、ノードの入力ベクトル、及びノードと以前ノードとの間のエッジを形成する前に、人工ニューロンの出力ベクトルを用いて実現することができる。人工ニューロンのデータ構造に様々な変形が加えられるが、このような変形は実施形態の範囲に属する。
【００４０】
人工ニューロンは、ｎ個の入力ソースから入力Ｘ１〜ＸＮを受信する。例えば、ｎ個の入力ソースは、他の人工ニューロンのシナプス、センサ、入力データストレージ、または、他のデータソースであってもよい。人工ニューロンの胴体部と入力Ｘ１〜ＸＮを接続する入力ベクトルは、個別シナプス加重値Ｗ１〜ＷＮを用いてスケールされ得る。シナプス加重値は、人工ニューロンの胴体部によって受信される入力の強度に影響を与える。例えば、シナプス加重値Ｗ１が０．８である場合、入力Ｘ１は人工ニューロンの胴体部に達するとき８０％のように減少されることがある。受信された入力は線形合算によって結合されたり、活性化関数ＡＦ（ｘ１、ｘ２、．．．、ｘｎ）に基づいて受信された入力を結合するために追加的な関数が適用され得る。例えば、特定入力ベクトルを用いて受信された入力は、人工ニューロンを活性化させる代わりに不活性化させてもよい。活性化関数ＡＦ（ｘ１、ｘ２、．．．、ｘｎ）に基づいて、人工ニューロンの胴体部は結合された入力を調節することで、出力「Ｙ」を生成することができる。一例示によると、次の人工ニューロンとして出力「Ｙ」を発生するために、活性化関数ＡＦ（ｘ１、ｘ２、．．．、ｘｎ）の結果は人工ニューロンの閾値を超過しなければならない。この場合、人工ニューロンは、入力ベクトルを用いて特定閾値の活性化強度に達する前には次の人工ニューロンに信号を発生することなく、不活性化状態を保持することができる。
【００４１】
再び図１を参照すると、ニューラルネットワーク１００は複数のレイヤを含む。例えば、ニューラルネットワーク１００は、入力レイヤ（ｉｎｐｕｔ  ｌａｙｅｒ）１１０、隠れレイヤ（ｈｉｄｄｅｎ  ｌａｙｅｒ）１２０、出力レイヤ（ｏｕｔｐｕｔ  ｌａｙｅｒ）１３０を含む。入力レイヤ１１０は、学習を行うための入力を受信して隠れレイヤ１２０に伝達し、出力レイヤ１３０は、隠れレイヤ１２０から受信した信号に基づいてニューラルネットワーク１００の出力を生成する。隠れレイヤ１２０は、入力レイヤ１１０と出力レイヤ１３０との間に位置し、入力レイヤ１１０を介して伝えられた学習データを予測しやすい値に変化させ得る。
【００４２】
入力レイヤ１１０、隠れレイヤ１２０、及び出力レイヤ１３０は、複数のノードを含む。入力レイヤ１１０に含まれたノードは入力ノードと称し、隠れレイヤ１２０に含まれたノードは隠れノードと称し、出力レイヤ１３０に含まれたノードは出力ノードと称する。
【００４３】
入力レイヤ１１０に含まれた入力ノードと隠れレイヤ１２０に含まれた隠れノードは、接続加重値を有する接続線によって接続されてもよい。隠れレイヤ１２０に含まれた隠れノードと出力レイヤ１３０に含まれた出力ノードは、接続加重値を有する接続線によって接続されてもよい。
【００４４】
図面に図示していないが、ニューラルネットワークは複数の隠れレイヤを含んでもよい。複数の隠れレイヤを含むニューラルネットワークは、深度ニューラルネットワーク（ｄｅｅｐ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ）と称する。深度ニューラルネットワークを学習させるものは深度学習（ｄｅｅｐ  ｌｅａｒｎｉｎｇ）と称する。
【００４５】
隠れレイヤ１２０に第１隠れレイヤ、第２隠れレイヤ、及び第３隠れレイヤが含まれる場合を仮定すると、第１隠れレイヤに属する隠れノードの出力は、第２隠れレイヤに属する隠れノードに接続され得る。第２隠れレイヤに属する隠れノードの出力は、第３隠れレイヤに属する隠れノードに接続され得る。
【００４６】
一実施形態によると、互いに異なる隠れレイヤに属する隠れノード間に再帰的（ｒｅｃｕｒｒｅｎｔ）に接続され得る。このように互いに異なる隠れレイヤに属する隠れノード間に再帰的な接続があるニューラルネットワーク１００は、回帰ニューラルネットワークと称する。
【００４７】
一実施形態に係るニューラルネットワーク学習装置は、監督学習（ｓｕｐｅｒｖｉｓｅｄ  ｌｅａｒｎｉｎｇ）によりニューラルネットワーク１００を学習させることができる。ニューラルネットワーク学習装置は、ソフトウェアモジュール、ハードウェアモジュール、または、この組合せにより実現することができる。監督学習は、学習データとそれに対応する出力データをともにニューラルネットワーク１００に入力し、学習データに対応する出力データが出力されるよう、接続線の接続加重値をアップデートする方式である。一例示によると、ニューラルネットワーク学習装置は、新しいノードを追加したり新しいレイヤを追加することでニューラルネットワークを拡張し得る。ニューラルネットワーク学習装置は、トレーニングデータに基づいてニューラルネットワークの構造を変更してもよい。図１は、ニューラルネットワークの構造をノード構造として表現したが、実施形態はこのようなノード構造に限定されるここはない。メモリストレージにニューラルネットワークを格納するために様々なデータ構造を用いることができる。
【００４８】
ニューラルネットワーク学習装置は、エラー逆伝播学習（ｂａｃｋ−ｐｒｏｐａｇａｔｉｏｎ  ｌｅａｒｎｉｎｇ）を用いて人工ニューロン間の接続加重値をアップデートする。エラー逆伝播学習は、与えられた学習データに対してフォワード算出（ｆｏｒｗａｒｄ  ｃｏｍｐｕｔａｔｉｏｎ）によりエラーを推定した後、出力レイヤ１３０から始まって隠れレイヤ１２０及び入力レイヤ１１０に向かう逆方向に推定したエラーを伝播しながら、エラーを減らす方向に接続加重値をアップデートする方法である。ニューラルネットワーク１００の処理は、入力レイヤ１１０→隠れレイヤ１２０→出力レイヤ１３０の方向に進行するが、エラー逆伝播学習で接続加重値のアップデート方向は、出力レイヤ１３０→隠れレイヤ１２０→入力レイヤ１１０の方向に進行する。１つ又はそれ以上のプロセッサは、ニューラルネットワークを所望する方向に処理するため、レイヤ又は一連の算出データを格納するバッファメモリを使用することができる。
【００４９】
ニューラルネットワーク学習装置は、現在の設定された接続加重値がどれ程最適であるかを測定するための目的関数を定義し、目的関数の結果に基づいて接続加重値を続けて変更して学習を繰り返す。例えば、目的関数は、ニューラルネットワーク１００が学習データに基づいて実際に出力した出力値と出力を所望する期待値との間のエラーを算出するためのエラー関数であり得る。ニューラルネットワーク学習装置は、エラー関数の値を減らす方向に接続加重値をアップデートすることができる。
【００５０】
下記で詳細に説明するが、一実施形態に係るニューラルネットワーク学習装置は、ニューラルネットワークを拡張させることでニューラルネットワークの認識性能を向上することができる。以下、ニューラルネットワークを拡張させるという表現は、ニューラルネットワークの構造を拡張させるという表現と同一に用いられる。例えば、目的関数の結果が一定のレベル以上に向上されない場合、ニューラルネットワーク学習装置は、隠れレイヤに含まれたノードの個数を増加させながらニューラルネットワークを学習させ得る。
【００５１】
図２は、一実施形態に係るニューラルネットワーク構造拡張方法を示した動作フローチャートである。ニューラルネットワークは、学習基盤認識、学習基盤認証、学習基盤分類などの様々な分野で活用される。ニューラルネットワークの構造が複雑になるほど（又は、ニューラルネットワークの規模が大きくなるほど）ニューラルネットワークの性能は向上する。しかし、ニューラルネットワークの構造が複雑になるほど（又は、ニューラルネットワークの規模が大きくなるほど）当該ニューラルネットワークを学習するために必要な演算複雑度も共に増加する。精巧な学習のためには一定のレベル以上に複雑な構造を有する（又は、一定のレベル以上に大きい規模を有する）ニューラルネットワークが必要であるが、一般的な学習方式では当該ニューラルネットワークの性能を最適化するには限界がある。
【００５２】
以下で説明する実施形態は、小規模ニューラルネットワークを先に学習させて当該のニューラルネットワークの構造を次第に拡張及び学習させる技術を提供することができる。この場合、ニューラルネットワークは構造拡張以前に学習された結果を保持しながら、次第に精巧に学習され得る。ニューラルネットワークの構造拡張及び学習が反復されることにより、一定のレベル以上に複雑な複雑度又は一定のレベル以上に大きい規模のニューラルネットワークが最適に学習され得る。以下、ニューラルネットワークの構造拡張に対して詳細に説明する。
【００５３】
図２を参照すると、一実施形態に係るニューラルネットワーク構造拡張方法は、ノードを選択するステップＳ２１０、新しいノードを生成するステップＳ２２０、新しいノードをニューラルネットワークに接続するステップＳ２３０、接続加重値を設定するステップＳ２４０、及び拡張されたニューラルネットワークを学習させることで新しいノードの接続加重値を調整するステップＳ２５０を含む。
【００５４】
ステップＳ２１０において、ニューラルネットワークに含まれたノードのうち少なくとも１つのノードが選択される。ノードの選択のために様々な情報が考慮される。例えば、ノードを選択するために、ノードの活性化頻度数情報及びノードの活性化エントロピー情報などが考慮され得る。活性化頻度数情報は、予め決定した時間区間内にノードそれぞれが活性化する頻度数を含む。活性化エントロピー情報は、予め決定した時間区間内にノードそれぞれが活性化状態と不活性状態との間で遷移する回数を含む。
【００５５】
ステップＳ２２０において、新しいノードが生成される。新しいノードはステップＳ２１０で選択されたノード（以下、「選択されたノード」という）が属するレイヤに生成され得る。例えば、ニューラルネットワークに第１隠れレイヤ、第２隠れレイヤ、及び第３隠れレイヤが含まれ、第２隠れレイヤに含まれたノードが選択されてもよい。この場合、新しいノードは第２隠れレイヤに生成されてもよい。
【００５６】
新しいノードは、以前レイヤに含まれたノード及び次のレイヤに含まれたノードと接続される。例えば、新しいノードが第２隠れレイヤに生成される場合、新しいノードは、第１隠れレイヤに含まれたノード及び第３隠れレイヤに含まれたノードと接続されてもよい。
【００５７】
ステップＳ２３０において、新しいノードとニューラルネットワーク内のノードとの間を接続するエッジが形成することによって、新しいノードはニューラルネットワークと接続され得る。
【００５８】
ステップＳ２４０において、新しいノードの接続加重値が設定される。新しいノードの接続加重値は、以前レイヤに含まれたノードと新しいノードを接続する接続線の接続加重値、及び新しいノードと次のレイヤに含まれたノードを接続する接続線の接続加重値を含む。
【００５９】
新しいノードの接続加重値は、選択されたノードの接続加重値に基づいて設定され得る。例えば、新しいノードの接続加重値のうち一部は選択されたノードの接続加重値のうち一部と同一に設定されてもよい。新しいノードの残り接続加重値は、予め決定した初期値と設定されてもよい。また、選択されたノードの接続加重値のうち新しいノードの接続加重値を設定値に活用された接続加重値も予め決定した初期値に設定されてもよい。
【００６０】
ステップＳ２２０で新しいノードが生成され、ステップＳ２３０で接続加重値が設定される動作は、ステップＳ２１０で選択されたノードがコピーされるものとして理解される。ここで、選択されたノードの接続加重値のうち一部のみを新しいノードにコピーされる。選択されたノードにコピーされた接続加重値は、予め決定した初期値に初期化され得る。また、新しいノードに設定されていない接続加重値も予め決定した初期値に初期化され得る。
【００６１】
ステップＳ２５０において、ニューラルネットワークの構造拡張が行われた後追加的に学習が行われながら、前述した方式により設定された接続加重値が追加的にアップデートされる。ステップＳ２１０〜ステップＳ２３０に関するより詳細な事項は図３〜図８を参照して後述する。
【００６２】
図３は、一実施形態に係るノードの選択を説明する図である。図３を参照すると、一実施形態に係るニューラルネットワーク学習装置は、ニューラルネットワークの構造拡張のために、隠れレイヤ１２０に含まれたノードのいずれか１つを選択する。
【００６３】
ニューラルネットワーク学習装置は、隠れレイヤ１２０に含まれた隠れノードの活性化パターンをモニタリングする。一例として、図４Ａを参照すると、第１隠れノード１２１の活性化パターンはｏｆｆ−ｏｎ−ｏｆｆ−ｏｆｆ−ｏｆｆであり、第２隠れノード１２２の活性化パターンはｏｎ−ｏｎ−ｏｆｆ−ｏｎ−ｏｆｆであってもよい。ニューラルネットワーク学習装置は、隠れノードの活性化パターンに基づいて活性化頻度数情報を生成する。活性化頻度数情報は、モニタリングされた活性化パターン内の隠れノードそれぞれが活性化した頻度数を示す情報である。図４Ａに示す例示として、第１隠れノード１２１の活性化頻度数は１であり、第２隠れノード１２２の活性化頻度数は３である。
【００６４】
ニューラルネットワーク学習装置は、予め決定した時間区間で活性化頻度数が最も大きいノードを選択する。活性化頻度数が最も大きいノードを選択する理由は、活性化頻度数が最も大きいノードがニューラルネットワーク内で最も負荷の多いノードであるためである。最も負荷の多いノードの負荷を軽減させることで、ニューラルネットワークの認識性能は向上される。図４Ａに示す例示によると、第２隠れノード１２２の活性化頻度数（例えば、３）が第１隠れノード１２１の活性化頻度数（例えば、１）よりも大きいため、第２隠れノード１２２が選択され得る。
【００６５】
他の例として、図４Ｂを参照すると、第１隠れノード１２１の活性化パターンはｏｎ−ｏｆｆ−ｏｎ−ｏｆｆ−ｏｎであり、第２隠れノード１２２の活性化パターンはｏｎ−ｏｎ−ｏｎ−ｏｆｆ−ｏｆｆであってもよい。ニューラルネットワーク学習装置は、隠れノードの活性化パターンに基づいて活性化頻度数情報を生成する。図４Ｂに示す例示として、第１隠れノード１２１の活性化頻度数と第２隠れノード１２２の活性化頻度数は合わせて３である。
【００６６】
また、ニューラルネットワーク学習装置は、隠れノードの活性化パターンに基づいて活性化エントロピー情報を生成することができる。活性化エントロピー情報は、モニタリングされた活性化パターン内の隠れノードそれぞれが活性化状態と不活性状態の間で遷移された回数を示す情報である。図４Ｂに示す例示として、第１隠れノード１２１の活性化エントロピーは４であり、第２隠れノード１２２の活性化エントロピーは１である。
【００６７】
ニューラルネットワーク学習装置は、予め決定した時間区間で活性化エントロピーが予め決定した第３閾値よりも小さく、活性化頻度数が予め決定した第４閾値よりも大きいノードを選択する。活性化頻度数が一定のレベル以上、活性化エントロピーが大きいノードは、予め決定した時間区間内で平均して分布で活性化した確率が高い。また、活性化頻度数が一定のレベル以上であり、活性化エントロピーが小さいノードは、予め決定した時間区間内の特定の時間区間に集中的に活性化する確率が高い。
【００６８】
特定の時間区間に集中する活性化を分散してニューラルネットワークの認識性能を向上させるために、活性化エントロピーが予め決定した第３閾値よりも小さくて活性化頻度数が予め決定した第４閾値よりも大きいノードが選択される。例えば、第３閾値と第４閾値が全て２である場合を仮定すると、図４Ｂに示す例示として、第２隠れノード１２２の活性化エントロピー（例えば、１）は第３閾値（例えば、２）よりも小さく、第２隠れノード１２２の活性化頻度数（例えば、３）は第４閾値（例えば、２）よりも大きいため、第２隠れノード１２２が選択され得る。
【００６９】
図５は、一実施形態に係る新しいノードの生成を説明する図である。図５を参照すると、一実施形態に係るニューラルネットワーク学習装置は、選択されたノードが属するレイヤに新しいノードを生成する。例えば、第２隠れノード１２２が選択された場合を仮定すると、ニューラルネットワーク学習装置は、選択された第２隠れノード１２２が含まれた隠れレイヤ１２０に新しい第３隠れノード１２３を生成してもよい。
【００７０】
ニューラルネットワーク学習装置は、選択されたノードの活性化特性に基づいて新しいノードの活性化特性を設定することができる。例えば、ニューラルネットワーク学習装置は、選択されたノードの活性化閾値に基づいて新しいノードの活性化閾値を設定してもよい。または、ニューラルネットワーク学習装置は、選択されたノードの活性化関数に基づいて新しいノードの活性化関数を設定してもよい。
【００７１】
図６〜図８は、一実施形態に係る接続加重値の設定を説明する図である。一実施形態に係るニューラルネットワーク学習装置は、選択されたノードの接続加重値に基づいて新しいノードの接続加重値を設定することができる。以下、選択されたノードの接続加重値のうち一部を新しいノードに移動させる実施形態について説明するが、選択されたノードの接続加重値に基づいて新しいノードの接続加重値を設定する方法は様々に変形され得る。例えば、ニューラルネットワーク学習装置は、選択されたノードの接続加重値の様々な統計に基づいて、新しいノードの接続加重値を設定し得る。
【００７２】
図６を参照すると、一実施形態に係るニューラルネットワーク学習装置は、選択されたノード１２２の接続加重値のうち一部を選択する。選択されたノード１２２の接続加重値は、入力接続加重値と出力接続加重値を含む。ニューラルネットワーク学習装置は、選択されたノード１２２の入力接続加重値６１１、６１２、６１３を選択する。
【００７３】
他の例として、図面に図示していないが、ニューラルネットワーク学習装置は、入力接続加重値を複数の入力グループに分割し、出力接続加重値を複数の出力グループに分割する。ニューラルネットワーク学習装置は、複数の入力グループのいずれか１つのグループを選択し、複数の出力グループのいずれか１つのグループを選択してもよい。
【００７４】
例えば、ニューラルネットワーク学習装置は、第１入力接続線の第１入力接続加重値６１１、第２入力接続線の第２入力接続加重値６１２、及び第３入力接続線の第３入力接続加重値６１３を２つの入力グループに分割することができる。２つの入力グループは、｛第１入力接続加重値６１１、第２入力接続加重値６１２｝と｛第３入力接続加重値６１３｝であってもよい。ニューラルネットワーク学習装置は、２つの入力グループのいずれか１つの入力グループ、例えば、｛第３入力接続加重値６１３｝を選択してもよい。
【００７５】
ニューラルネットワーク学習装置は、様々な方式を用いて入力接続加重値を複数のグループに分割することができる。一例として、ニューラルネットワーク学習装置は、第１グループに属する接続加重値の和と第２グループに属する接続加重値の和との間の差が予め決定した第５閾値以下になるよう、選択されたノード１２２の接続加重値を第１グループ及び第２グループに分割してもよい。
【００７６】
他の例として、ニューラルネットワーク学習装置は、選択されたノード１２２の接続加重値を大きさ順に整列してもよい。選択されたノード１２２の接続加重値が合わせてｎ個である場合、接続加重値が整列した整列リストに含まれた接続加重値はそれぞれ１〜ｎにインデックスされる。ニューラルネットワーク学習装置は、整列リスト内の両端に位置する接続加重値（インデックス１、インデックスｎ）を第１グループに分類し、整列リスト内に分類されていない接続加重値のうち両端に位置する接続加重値（インデックス２、インデックスｎ−１）を第２グループに分類してもよい。ニューラルネットワーク学習装置は、整列リスト内の全ての元素が分類されるまで前述した過程を繰り返すことで、選択されたノード１２２の接続加重値を第１グループ及び第２グループに分割することができる。
【００７７】
前述した方式は例示的な事項に過ぎず、選択されたノード１２２の接続加重値を第１グループ及び第２グループに分割する方式は様々に変形され得る。それだけではなく、実施形態は選択されたノード１２２の接続加重値を３個以上のグループに分割する方式でも拡張され得る。
【００７８】
また、ニューラルネットワーク学習装置は、出力接続加重値を複数のグループに分割することができる。例えば、ニューラルネットワーク学習装置は、第１出力接続線の第１出力接続加重値６２１、第２出力接続線の第２出力接続加重値６２２、及び第３出力接続線の第３出力接続加重値６２３を２つの出力グループに分割してもよい。２つの出力グループは｛第１出力接続加重値６２１｝と｛第２出力接続加重値６２２、第３出力接続加重値６２３｝であってもよい。ニューラルネットワーク学習装置は、２つの出力グループのいずれか１つの出力グループ、例えば、｛第２出力接続加重値６２２、第３出力接続加重値６２３｝を選択してもよい。
【００７９】
ニューラルネットワーク学習装置は、分割されたグループのいずれか１つのグループに属する接続加重値を選択することができる。例えば、ニューラルネットワーク学習装置は、分割されたグループのいずれか１つのグループを予め決定した方式（例えば、ランダム選択方式など）により選択し、選択されたグループに属する接続加重値を選択することができる。
【００８０】
図７を参照すると、一実施形態に係るニューラルネットワーク学習装置は、新しいノード１２３の接続加重値を設定するために、選択されたノード１２２から選択された一部の接続加重値を新しいノード１２３に用いることができる。例えば、ニューラルネットワーク学習装置は、選択されたノード１２２の入力接続加重値６１１、６１２、６１３の全てを選択する。選択されたノード１２２の入力接続加重値６１１、６１２、６１３は、入力ノード７０１、７０２、７０３と選択されたノード１２２を接続する接続線の接続加重値である。ニューラルネットワーク学習装置は、選択された入力接続加重値６１１、６１２、６１３を新しいノード１２３にコピーしてもよい。ニューラルネットワーク学習装置は、入力ノード７０１、７０２、７０３と新しいノード１２３を接続する接続線の接続加重値７１１、７１２、７１３を入力接続加重値６１１、６１２、６１３と同一に設定し得る。
【００８１】
ニューラルネットワーク学習装置は、選択されたノード１２２の出力接続加重値６２１、６２２、６２３のうち一部を選択する。例えば、ニューラルネットワーク学習装置は、選択されたノード１２２の出力接続加重値６２１、６２２、６２３のうち出力接続加重値６２２、６２３を選択してもよい。ニューラルネットワーク学習装置は、選択された出力接続加重値６２２、６２３を新しいノード１２３に移動させる。ニューラルネットワーク学習装置は、接続加重値７２２を出力接続加重値６２２と同一に設定し、接続加重値７２３を出力接続加重値６２３と同一に設定する。ニューラルネットワーク学習装置は、接続加重値７２２と接続加重値７２３を設定した後、出力接続加重値６２２と出力接続加重値６２３を初期化することができる。例えば、ニューラルネットワーク学習装置は、出力接続加重値６２２と出力接続加重値６２３を予め決定した初期値に設定してもよい。
【００８２】
実施形態は、出力接続加重値をインデックス単位で移動させることで、深度学習において発生可能な共同適応（ｃｏ−ａｄａｐｔａｔｉｏｎ）問題を回避することができる。共同適応問題は、複数のノードが類似する出力接続加重値を有する場合、１つのノードのように学習され出力されて、ノードの無駄遣いを招く問題がある。実施形態は、出力接続加重値をインデックス単位に新しいノードに分散させることで、共同適応問題を回避することができる。
【００８３】
図８を参照すると、一実施形態に係るニューラルネットワーク学習装置は新しいノード１２３の残り接続加重値を初期化することができる。残りの接続加重値は、新しいノード１２３の接続加重値のうちまだ設定されていない接続加重値を含み得る。例えば、新しいノード１２３の接続加重値７２１は残り接続加重値であってもよい。ニューラルネットワーク学習装置は、接続加重値７２１を残りの接続加重値として検出し、接続加重値７２１を予め決定した初期値に設定する。
【００８４】
以上で説明の便宜のために、１つのノードが選択されて１つの新しいノードが生成される場合について説明したが、実施形態は、複数のノードが選択されて複数の新しいノードが生成される場合にもそのまま適用され得る。
【００８５】
選択されたノードの接続加重値に基づいて、新しいノードの接続加重値を設定する方式は様々に変形され得る。一例として、選択されたノードの入力接続加重値のうち一部と出力接続加重値のうちの一部のみが新しいノードに移動してもよい。他の例として、選択されたノードの出力接続加重値が全て新しいノードにコピーされ、入力接続加重値のうち一部のみが新しいノードに移動してもよい。
【００８６】
図９は、一実施形態に係るニューラルネットワークの構造拡張後の追加的な学習を説明する図である。図９を参照すると、一実施形態に係るニューラルネットワーク学習装置は、新しいノードを含むように拡張された構造のニューラルネットワーク９００を学習させることで、接続加重値をアップデートすることができる。
【００８７】
ニューラルネットワーク学習装置は、予め学習されたニューラルネットワークをリサイクルすることで、学習時間の縮小された技術を提供することができる。また、ニューラルネットワーク学習装置は、予め学習されたニューラルネットワークの構造を次第に拡張し学習させることで、ニューラルネットワークの認識性能を次第に向上させる技術を提供できる。
【００８８】
ニューラルネットワーク学習装置は、レイヤ特別なプレ−トレーニング（ｐｒｅ−ｔｒａｉｎｉｎｇ）なしに深度学習を行う技術を提供することができる。ニューラルネットワーク学習装置は、前述した方式を用いて学習の全過程（例えば、ニューラルネットワーク内の全てのレイヤ）で分類の目的関数を共有しながら、深度ニューラルネットワークを最適化する深度学習を行うことができる。
【００８９】
図１０、図１１Ａ、及び図１１Ｂは、一実施形態に係るニューラルネットワーク構造拡張方法の応用を説明する図である。図１０を参照すると、ステップＳ１０１０において、ニューラルネットワークが初期化される。例えば、ニューラルネットワークの初期構造、ニューラルネットワーク内の初期接続加重値などが設定され得る。ステップＳ１０２０において、ニューラルネットワークが学習される。トレーニングデータは、トレーニングデータストレージから取得され得る。演算は、ニューラルネットワークを介して活性化パターンがモニターされる間にプロセッサによって行われる。例えば、ニューラルネットワークは、監督学習、エラー逆伝播学習などを用いて学習されてもよい。
【００９０】
ステップＳ１０３０において、ニューラルネットワークの構造拡張が必要であるか否かを判断する。一例として、現在まで学習されたニューラルネットワークの性能が評価される。性能は、ニューラルネットワークによって実行された分析が正確であるか否かを示す。もし、現在まで学習されたニューラルネットワークの性能が予め決定した閾値よりも小さい場合、ニューラルネットワークの構造拡張が必要であると判断される。ニューラルネットワークに与えられたタスク（例えば、認識、認証、分類など）の性能を向上させるために、ニューラルネットワーク内ノードの個数が増加する必要がある。
【００９１】
他の例として、外部入力によってニューラルネットワークの構造拡張が必要であるか否かを判断する。もし、ステップＳ１０３０で構造拡張を指示する入力が受信される場合、ニューラルネットワークの構造拡張が必要であると判断される。構造拡張を指示する入力は、ユーザインタフェースを介して受信されるなどの様々な方式により受信されてもよい。
【００９２】
ステップＳ１０３０において、ニューラルネットワークの構造拡張が必要であると判断される場合、ステップＳ１０４０でニューラルネットワークの構造が拡張される。ステップＳ１０４０は、図２〜図８を参照して前述した事項がそのまま適用され得るため、より詳細な説明は省略する。ステップＳ１０５０において、拡張された構造のニューラルネットワークが追加的に学習され得る。ステップＳ１０３０において、ニューラルネットワークの構造拡張が必要ではないものと判断される場合、構造拡張や追加学習なしにニューラルネットワークの学習を終了する。
【００９３】
図１１Ａを参照すると、ステップＳ１１１０において、ニューラルネットワークを初期化する。ステップＳ１１２０においてニューラルネットワークが学習され、ステップＳ１１３０においてニューラルネットワークの構造拡張が必要であるか否かを判断する。ステップＳ１１２０及びステップＳ１１３０は、学習エポック（ｅｐｏｃｈ）を構成してもよい。ステップＳ１１２０で単一学習エポックのため予め決定した数のトレーニングデータを用いてニューラルネットワークが学習され得る。ステップＳ１１３０において、当該の学習エポックにおける性能向上の程度が評価され、評価結果に基づいてニューラルネットワークの構造拡張が必要であるか否かを判断する。
【００９４】
例えば、当該の学習エポックにおける性能向上が予め決定した第１閾値よりも大きい場合、現在の構造のニューラルネットワークがさらに学習される余地があるため、ニューラルネットワークの構造拡張は必要でないと判断する。一方、当該の学習エポックにおける性能向上が予め決定した第１閾値よりも小さい場合、現在の構造のニューラルネットワークの性能が飽和されたものであるため、ニューラルネットワークの構造拡張は必要であると判断する。
【００９５】
ニューラルネットワークの構造拡張が必要であると判断されれば、ステップＳ１１４０において、ニューラルネットワークの学習終了条件が満足されるか否かを判断する。ここで、現在の構造のニューラルネットワークの性能と以前構造のニューラルネットワークの性能とを比較し、比較結果に基づいてニューラルネットワークの学習終了条件が満足されるか否かを判断する。以前構造のニューラルネットワークは、現在の構造のニューラルネットワークで構造拡張される以前のニューラルネットワークを意味する。
【００９６】
例えば、現在の構造のニューラルネットワークの性能と以前構造のニューラルネットワークの性能との間の差が予め決定した第２閾値よりも大きい場合、追加的な構造拡張による性能向上が期待されるため、ニューラルネットワークの学習終了条件が満足されないものと判断する。一方、現在の構造であるニューラルネットワークの性能と以前構造のニューラルネットワークの性能との間の差が予め決定した第２閾値よりも小さい場合、追加的な構造拡張による性能向上が期待されないため、ニューラルネットワークの学習終了条件が満足されるものと判断する。
【００９７】
ニューラルネットワークの学習終了条件が満足されていない場合、ステップＳ１１５０において、ニューラルネットワークの構造は拡張される。ステップＳ１１２０〜ステップＳ１１５０は、ニューラルネットワークの学習終了条件が満足されるまで反復される。
【００９８】
図１１Ｂを参照すると、第１ニューラルネットワーク１１６０が初期化され得る。第１学習エポック１１６１で第１ニューラルネットワーク１１６０が学習され、性能向上の程度が評価される。第１学習エポック１１６１で第１ニューラルネットワーク１１６０が学習された結果、性能向上の程度が第１閾値よりも大きいこともある。この場合、性能向上評価の結果は「Ｐａｓｓ」であり、まだ構造拡張が必要ではないものと判断される。第２学習エポック１１６２でも学習及び性能向上評価が行われることができる。第３学習エポック１１６３で第１ニューラルネットワーク１１６０が学習された結果、性能向上の程度が第１閾値よりも小さいこともある。この場合、性能向上評価の結果は「Ｆａｉｌ」であり、構造拡張が必要であると判断される。
【００９９】
ステップＳ１１７１で第１ニューラルネットワーク１１６０が構造拡張されることにより第２ニューラルネットワーク１１７０が生成される。複数の学習エポックそれぞれで第２ニューラルネットワーク１１７０は学習され、当該学習エポックにおける性能向上の程度が評価される。第４学習エポック１１７２で第２ニューラルネットワーク１１７０が学習された結果、性能向上の程度が第１閾値よりも小さいこともある。この場合、性能向上評価の結果は「Ｆａｉｌ」であり、構造拡張が必要であると判断される。
【０１００】
ニューラルネットワークの構造拡張が行われる前に、現在の構造のニューラルネットワークの性能と以前構造のニューラルネットワークの性能とを比較することによって、ニューラルネットワークの学習終了条件が満足されるか否かを判断する。ニューラルネットワークの構造が十分大きくない場合、追加的な構造拡張によってニューラルネットワークの性能向上を期待することが難しいためである。
【０１０１】
ステップＳ１１７３において、第２ニューラルネットワーク１１７０の性能と第１ニューラルネットワーク１１６０の性能とを比較する。比較の結果、第２ニューラルネットワーク１１７０の性能と第１ニューラルネットワーク１１６０の性能との間の差が第２閾値よりも大きいこともある。この場合、性能比較の結果は「Ｐａｓｓ」であり、ニューラルネットワークの学習終了条件が満足されないものと判断される。
【０１０２】
ステップＳ１１８１において、第２ニューラルネットワーク１１７０が構造拡張されることによって第３ニューラルネットワーク１１８０が生成される。第５学習エポック１１８２で第３ニューラルネットワーク１１８０が学習された結果、性能向上の程度が第１閾値よりも小さいこともある。この場合、性能向上評価の結果は「Ｆａｉｌ」であり、構造拡張が必要であると判断される。ステップＳ１１８３において、第３ニューラルネットワーク１１８０の性能と第２ニューラルネットワーク１１７０の性能とが比較される。比較の結果、第３ニューラルネットワーク１１８０の性能と第２ニューラルネットワーク１１７０の性能との間の差が第２閾値よりも小さいこともある。言い換えると、構造拡張を通した性能向上の程度が第２閾値よりも小さいこともある。この場合、性能比較の結果は「Ｆａｉｌ」であり、ニューラルネットワークの学習終了条件が満足されるものと判断される。
【０１０３】
図１２及び図１３は、一実施形態に係るニューラルネットワーク構造拡張方法によって学習されるニューラルネットワークを説明する図である。図１２を参照すると、一実施形態に係るニューラルネットワーク１２００は、入力レイヤ１２１０、複数の隠れレイヤ１２２０、及び出力レイヤ１２３０を含む。複数の隠れレイヤ１２２０それぞれは、予め決定した数以下のノードを含むように初期化され得る。このような初期化動作は、図１０に示すステップＳ１０１０又は図１１に示すステップＳ１１１０で行われる。
【０１０４】
ニューラルネットワーク１２００は、図１０に示すステップＳ１０２０〜ステップＳ１０５０又は図１１に示すステップＳ１１２０〜ステップＳ１１５０によって構造拡張されながら学習され得る。図１０に示すステップＳ１０４０又は図１１に示すステップＳ１１５０において、ニューラルネットワーク１２００の隠れレイヤ１２２０で新しいノードが生成されてもよい。図１３を参照すると、一実施形態に係る学習されたニューラルネットワーク１３００は構造拡張された隠れレイヤ１３２０を含む。
【０１０５】
図１４及び図１５は、一実施形態に係るニューラルネットワーク構造拡張方法によって学習されるオートエンコーダを説明する図である。オートエンコーダ（ａｕｔｏ  ｅｎｃｏｄｅｒ）は、次元縮小（ｄｉｍｅｎｓｉｏｎ  ｒｅｄｕｃｔｉｏｎ）を目的とするニューラルネットワークである。図１４を参照すると、一実施形態に係るオートエンコーダ１４００は、入力レイヤ１４１０、隠れレイヤ１４２０、及び出力レイヤ１４３０を含む。
【０１０６】
入力レイヤ１４１０、隠れレイヤ１４２０、及び出力レイヤ１４３０は、オートエンコーダの入力ディメンションに基づいて初期化され得る。例えば、入力レイヤ１４１０に含まれるノード数は入力ディメンションに基づいて決定されてもよい。出力レイヤ１４３０に含まれるノード数は、入力レイヤ１４１０に含まれるノード数と同一に決定される。隠れレイヤ１４２０に含まれるノード数は、予め決定した初期値（例えば、２）に決定される。
【０１０７】
オートエンコーダ１４００内で入力レイヤ１４１０→隠れレイヤ１４２０の構造と、隠れレイヤ１４２０→出力レイヤ１４３０の構造は互いに対称である。オートエンコーダ１４００内で入力レイヤ１４１０→隠れレイヤ１４２０は符号化に当該し、隠れレイヤ１４２０→出力レイヤ１４３０は復号化に該当する。
【０１０８】
オートエンコーダ１４００は、符号化により入力ディメンションをリダクションした後、復号化によりリダクションされた入力ディメンションを復旧する動作を行う。オートエンコーダ１４００の目的関数は入力値と出力値が同一であることを要求する。オートエンコーダは次元縮小を目的とするため、隠れレイヤ１４２０のための予め決定した初期値は、入力ディメンションよりも小さくなければならない。前述した初期化動作は、図１０に示すステップＳ１０１０又は図１１に示すステップＳ１１１０で行われる。
【０１０９】
オートエンコーダ１４００は、図１０に示すステップＳ１０２０〜ステップＳ１０５０又は図１１に示すステップＳ１１２０〜ステップＳ１１５０を介して構造拡張されながら学習され得る。図１０に示すステップＳ１０４０又は図１１に示すステップＳ１１５０において、オートエンコーダ１４００の隠れレイヤ１４２０で新しいノードが生成され得る。
【０１１０】
一実施形態に係る次元縮小装置は、隠れレイヤ１４２０に含まれたノード数をできる限り小さい数に初期化した後、隠れレイヤ１４２０を拡張させながらオートエンコーダ１４００を学習させる。次元縮小装置は、ソフトウェアモジュール、ハードウェアモジュール、またはその組合せで実現し得る。
【０１１１】
図１５を参照すると、オートエンコーダ１５００の性能が一定のレベル以上であれば、オートエンコーダ１５００の学習は終了する。オートエンコーダ１５００は、構造拡張された隠れレイヤ１５２０を含む。隠れレイヤ１５２０に含まれたノード数は、入力ディメンションがリダクションされた結果である。
【０１１２】
図面に図示していないが、オートエンコーダも複数の隠れレイヤを含んでもよい。例えば、オートエンコーダは、入力レイヤ、第１隠れレイヤ、中央隠れレイヤ、第２隠れレイヤ、及び出力レイヤを含んでもよい。オートエンコーダの基本動作を保持するために、入力レイヤ→第１隠れレイヤ→中央隠れレイヤの構造は、中央隠れレイヤ→第２隠れレイヤ→出力レイヤの構造と対称でなければならない。隠れレイヤの構造が拡張されるとき、第１隠れレイヤと第３隠れレイヤは互いに対称を保持し得る。
【０１１３】
図１６は、一実施形態に係るニューラルネットワーク学習装置を示すブロック図である。図１６を参照すると、一実施形態に係るニューラルネットワーク学習装置１６００は、選択部１６１０、生成部１６２０、接続部１６３０、設定部１６４０、及び学習部１６５０を含む。選択部１６１０、生成部１６２０、接続部１６３０、設定部１６４０、及び学習部１６５０は、１つ又はそれ以上のプロセッサとメモリを含む。選択部１６１０はニューラルネットワークの構造拡張のために、ニューラルネットワークに含まれたノードのうち少なくとも１つのノードを選択する。生成部１６２０は、選択されたノードが属するレイヤに新しいノードを生成する。接続部１６３０は、新しいノードを既存ノードに接続する。設定部１６４０は、選択されたノードの接続加重値に基づいて新しいノードの接続加重値を設定する。学習部１６５０は、トレーニングデータを用いてニューラルネットワークを学習させることで新しいノードと既存ノード間の接続加重値を調整することができる。トレーニングデータはメモリストレージから取得され得る。
【０１１４】
図１７は、一実施形態に係る次元縮小装置を示すブロック図である。図１７を参照すると、一実施形態に係る次元縮小装置１７００は、初期化部１７１０、判断部１７２０、及び拡張部１７３０を含む。初期化部１７１０、判断部１７２０、及び拡張部１７３０は１つ又はそれ以上のプロセッサ及びメモリを含む。初期化部１７１０は、入力ディメンションに基づいてニューラルネットワークの入力レイヤ、隠れレイヤ、及び出力レイヤを初期化する。判断部１７２０は、ニューラルネットワークを学習させながら、隠れレイヤの拡張が必要であるか否かを判断する。拡張部１７３０は、隠れレイヤの拡張が必要であるとの判断に応じて隠れレイヤを拡張させる。
【０１１５】
図１６及び図１７に示された各モジュールは、図１〜図１５を参照して前述した事項がそのまま適用され得るため、より詳細な説明は省略する。
【０１１６】
図１９は、一実施形態に係るニューラルネットワークを拡張する装置を示すブロック図である。図１〜図１８を参照して記述した事項は図１９に示す実施形態にそのまま適用され得る。したがって、重複的な技術は省略する。
【０１１７】
図１９を参照すると、ニューラルネットワーク拡張装置は、プロセッサ１９１０、ニューラルネットワークストレージ１９２０、算出値を格納するメモリ１９３０、及びトレーニングデータストレージ１９４０を含む。プロセッサ１９１０は単数形態に記載されているが、プロセッサ１９１０は複数のプロセッサ又はコアを含み得る。例えば、プロセッサ１９１０は、複数のマルチコアプロセッサを含むコンピュータ装置内で動作してもよい。一例として、マルチコアプロセッサは、ＧＰＧＰＵ（ｇｅｎｅｒａｌ  ｐｕｒｐｏｓｅ  ｇｒａｐｈｉｃ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）であってもよい。他の例として、マルチコアプロセッサそれぞれは、ＦＰＧＡ（ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）であるか、オーダーメード型（ｃｕｓｔｏｍｉｚａｂｌｅ）マルチコアプロセッサであってもよい。更なる例として、プロセッサ１９１０は、ＰＣＩ−Ｅ（ｐｅｒｉｐｈｅｒａｌ  ｃｏｍｐｏｎｅｎｔ  ｉｎｔｅｒｃｏｎｎｅｃｔ  ｅｘｐｒｅｓｓ）バスのような内部バスを介してデータを交換してもよい。更なる例として、プロセッサは単一コアプロセッサであってもよい。
【０１１８】
一実施形態によると、プロセッサ１９１０は、ニューラルネットワークストレージ１９２０に格納されたニューラルネットワークをレイヤごとに処理するためにパイプラインアルゴリズムを用いることができる。ニューラルネットワークストレージ１９２０は、複数のレイヤを含むニューラルネットワークを格納することができる。例えば、ニューラルネットワークは３個以上のレイヤを含んでもよい。トレーニングデータストレージ１９４０に格納されたトレーニングデータは、ニューラルネットワークストレージ１９２０に格納されたニューラルネットワークの入力レイヤに入力を提供することができる。例えば、ニューラルネットワークが英語手書文字（ｈａｎｄ−ｗｒｉｔｔｅｎ  Ｅｎｇｌｉｓｈ）のパターンを認識するように学習させるため、トレーニングデータは手書文字のデジタルイメージ及びそのイメージから認識されなければならないテキスト文字を含み得る。テキスト文字は、ニューラルネットワークの性能を決定するために用いる。ニューラルネットワークが音声を認識するように学習させるため、トレーニングデータは、オーディオレコーディングサンプル又は音声コーパス（ｓｐｅｅｃｈ  ｃｏｒｐｕｓ）を含んでもよい。
【０１１９】
ニューラルネットワークのノード活性化パターン、及びエッジに割り当てられる接続加重値など、プロセッサ１９１０によって行われる演算はニューラルネットワークが学習される間にメモリ１９３０に格納され得る。一例によると、ニューラルネットワークストレージ１９２０に格納されたニューラルネットワークは、学習される間、プロセッサ１９１０によって新しいノードが追加されたり新しい隠れレイヤが追加されることによって持続的にアップデートされ得る。
【０１２０】
図２０は、一実施形態に係る拡張されたニューラルネットワークを用いて入力データを分析する装置を示すブロック図である。図１〜図１９を参照して記述した事項は、図２０に示す実施形態にそのまま適用され得るため、重複的な技術は省略する。
【０１２１】
ニューラルネットワークが十分に学習された後、拡張されたニューラルネットワークは入力データを処理するために用いられる。例えば、プロセッサ２０１０は、メモリ又は入出力装置からデジタル手書文字のような入力データを取得してもよい。入出力装置は、キーボード、ディスプレイ装置、タッチスクリーン、プリンタなどを含み、この例示に限定されることはない。プロセッサ２０１０は、入力データをニューラルネットワークストレージ２０２０に格納された拡張されたニューラルネットワークの入力レイヤに提供することができる。拡張されたニューラルネットワークを用いて、プロセッサ２０１０は、入力データを認識されたテキストを含む出力データに変換する文字認識を行うことができる。
【０１２２】
一実施形態によると、プロセッサ２０１０は、図２０に示すように入力を分析するだけではなく、ニューラルネットワークのディメンションを学習させたり、拡張したり、変更し得る。他の実施形態によると、ニューラルネットワーク拡張及びデータ分析は２つの分離した装置によって行われる。
【０１２３】
以上で説明された実施形態は、ハードウェア構成要素、ソフトウェア構成要素、及び／又はハードウェア構成要素及びソフトウェア構成要素の組合せで実現してもよい。例えば、プロセッサ、コントローラ、ＡＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）、デジタル信号プロセッサ（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）、マイクロコンピュータ、ＦＰＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ａｒｒａｙ）、ＰＬＵ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｕｎｉｔ）、マイクロプロセッサー、または、命令（ｉｎｓｔｒｕｃｔｉｏｎ）を実行して応答できる異なる装置のように、１つ以上の汎用コンピュータまたは特定目的のコンピュータを用いて実現されてもよい。処理装置は、オペレーティングシステム（ＯＳ）及び前記オペレーティングシステム上で行われる１つ以上のソフトウェアアプリケーションを行ってもよい。また、処理装置は、ソフトウェアの実行に応答してデータをアクセス、格納、操作、処理及び生成してもよい。理解の便宜のために、処理装置は１つ使用されるものと説明される場合もあるが、当該の技術分野で通常の知識を有する者は、処理装置が複数の処理要素（ｐｒｏｃｅｓｓｉｎｇ  ｅｌｅｍｅｎｔ）及び／又は複数類型の処理要素を含んでいることが分かる。例えば、処理装置は、複数のプロセッサまたは１つのプロセッサ及び１つのコントローラを含んでもよい。また、並列プロセッサ（ｐａｒａｌｌｅｌ  ｐｒｏｃｅｓｓｏｒ）のような、他の処理構成も可能である。
【０１２４】
ソフトウェアはコンピュータプログラム、コード、命令、またはこのうちの１つ以上の組合せを含んでもよく、希望の通りに動作するよう処理装置を構成したり独立的または結合的に処理装置を命令してもよい。ソフトウェア及び／又はデータは、処理装置によって解釈されたり処理装置に命令またはデータを提供するためどのような類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体または装置、送信される信号波に永久的または一時的に具体化できる。ソフトウェアは、ネットワークに接続されたコンピュータシステム上に分散し、分散された方法で格納されたり実行されてもよい。ソフトウェア及びデータは１つ以上のコンピュータで読み出し可能な記録媒体に格納されてもよい。
【０１２５】
実施形態に係る方法は、多様なコンピュータ手段を介して様々な処理を実行することができるプログラム命令の形態で実現され、コンピュータで読取可能な記録媒体に記録されてもよい。コンピュータ読取可能な媒体は、プログラム命令、データファイル、データ構造などのうち１つまたはその組合せを含んでもよい。媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり、使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、光ディスクのような光磁気媒体、及びＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれてもよい。プログラム命令の例には、コンパイラによって作られるような機械語コードだけでなく、インタープリタなどを用いてコンピュータによって実行できる高級言語コードが含まれる。前記したハードウェア装置は、本発明の動作を行うために１つ以上のソフトウェアモジュールとして動作するように構成されてもよく、その逆も同様である。
【０１２６】
上述したように、本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような実施形態から多様な修正及び変形が可能である。
【０１２７】
したがって、本発明の範囲は、開示された実施形態に限定されるものではなく、特許請求の範囲だけではなく特許請求の範囲と均等なものなどによって定められるものである。
【符号の説明】
【０１２８】
１１０  入力レイヤ
１２０  隠れレイヤ
１３０  出力レイヤ
１２１０  入力レイヤ
１２２０  隠れレイヤ
１２３０  出力レイヤ
１３２０  隠れレイヤ
１４１０  入力レイヤ
１４２０  隠れレイヤ
１４３０  出力レイヤ
１６００  ニューラルネットワーク学習装置
１７００  次元縮小装置
【図１】
0006605259.tif 000002
【図２】
0006605259.tif 000003
【図３】
0006605259.tif 000004
【図４Ａ】
0006605259.tif 000005
【図４Ｂ】
0006605259.tif 000006
【図５】
0006605259.tif 000007
【図６】
0006605259.tif 000008
【図７】
0006605259.tif 000009
【図８】
0006605259.tif 000010
【図９】
0006605259.tif 000011
【図１０】
0006605259.tif 000012
【図１１Ａ】
0006605259.tif 000013
【図１１Ｂ】
0006605259.tif 000014
【図１２】
0006605259.tif 000015
【図１３】
0006605259.tif 000016
【図１４】
0006605259.tif 000017
【図１５】
0006605259.tif 000018
【図１６】
0006605259.tif 000019
【図１７】
0006605259.tif 000020
【図１８】
0006605259.tif 000021
【図１９】
0006605259.tif 000022
【図２０】
0006605259.tif 000023