(57)【要約】  学習部８１は、ニューラルネットワークを学習する。線形化量決定部８２は、ニューラルネットワークで用いられる活性化関数に含まれるパラメータであって、増加または減少させることによりその活性化関数を線形関数に近づけるパラメータである線形化量を決定する。集約部８３は、線形化量を増加または減少させることにより線形関数に収束すると判断される活性化関数をその線形関数に置き換えて、置き換えた線形関数を用いる層間の重みを集約する。学習部８１は、ニューラルネットワークの学習において、そのニューラルネットワークによる出力に基づく評価値を算出し、線形化量決定部８２は、評価値が予め定められた基準を満たす場合に、線形化量を変化させる。
2020137090.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークを学習する学習部と、
前記ニューラルネットワークで用いられる活性化関数に含まれるパラメータであって、増加または減少させることにより当該活性化関数を線形関数に近づけるパラメータである線形化量を決定する線形化量決定部と、
前記線形化量を増加または減少させることにより線形関数に収束すると判断される前記活性化関数を当該線形関数に置き換えて、置き換えた線形関数を用いる層間の重みを集約する集約部とを備え、
前記学習部は、前記ニューラルネットワークの学習において、当該ニューラルネットワークによる出力に基づく評価値を算出し、
前記線形化量決定部は、前記評価値が予め定められた基準を満たす場合に、前記線形化量を変化させる
ことを特徴とするニューラルネットワーク学習装置。
【請求項２】
学習部は、ニューラルネットワークに、正解ラベル付のテストデータを入力した際の判定精度を算出し、
線形化量決定部は、前記判定精度の増加に応じて線形化量を増加または減少させる
請求項１記載のニューラルネットワーク学習装置。
【請求項３】
線形化量決定部は、学習部による学習の開始前に、活性化関数を線形関数に近似可能な値に線形化量を設定し、前記学習の結果、判定精度が線形性を表わす所定の基準を満たさないと判定した場合、活性化関数が非線形関数を表わすように線形化量を変更し、前記基準を満たすと判定した場合、線形化量を維持したまま学習部による学習を継続させる
請求項２記載のニューラルネットワーク学習装置。
【請求項４】
判定精度が線形性を表わす所定の基準を満たすと判断された場合、学習中のニューラルネットワークから中間層をすべて削除し、入力層と出力層とを線形関数を表わす活性化関数で接続するモデルへ再構築するモデル再構築部を備え、
学習部は、再構築されたモデルを用いてニューラルネットワークを学習する
請求項３記載のニューラルネットワーク学習装置。
【請求項５】
学習部は、ニューラルネットワークの学習において、学習データと当該ニューラルネットワークによる出力との誤差を算出し、
線形化量決定部は、前記誤差の減少に応じて線形化量を増加または減少させる
請求項１記載のニューラルネットワーク学習装置。
【請求項６】
線形化量が変更されたあとで評価値が悪化した場合、次元数を増加させるように学習データの値を追加し、ニューラルネットワークの入力層の次元数を増加させるようにニューラルネットワークの構造を変更する入力次元追加部を備えた
請求項１から請求項５のうちのいずれか１項に記載のニューラルネットワーク学習装置。
【請求項７】
ニューラルネットワークの構造を再構成する線形・非線形分離再構成部を備え、
線形化量決定部は、学習部による学習の開始前に、活性化関数を線形関数に近似可能な値に線形化量を設定し、学習の結果、判定精度が線形性を表わす所定の基準を満たすと判断した場合第一の重みを保存し、
学習部は、活性化関数が非線形関数を示す値に線形化量を設定して学習し、学習の結果を第二の重みとして保存し、
前記線形・非線形分離再構成部は、前記第一重みと前記第二重みで対応する重みの差異が予め定めた基準よりも小さい層を線形性を有する層として削除するようにニューラルネットワークを再構成する
請求項１から請求項６のうちのいずれか１項に記載のニューラルネットワーク学習装置。
【請求項８】
ニューラルネットワークを学習し、
前記ニューラルネットワークの学習において、当該ニューラルネットワークによる出力に基づく評価値を算出し、
前記ニューラルネットワークで用いられる活性化関数に含まれるパラメータであって、増加または減少させることにより当該活性化関数を線形関数に近づけるパラメータである線形化量を決定し、
前記評価値が予め定められた基準を満たす場合に、前記線形化量を変化させ、
前記線形化量を増加または減少させることにより線形関数に収束すると判断される前記活性化関数を当該線形関数に置き換えて、置き換えた線形関数を用いる層間の重みを集約する
ことを特徴とするニューラルネットワーク学習方法。
【請求項９】
ニューラルネットワークに、正解ラベル付のテストデータを入力した際の判定精度を算出し、
前記判定精度の増加に応じて線形化量を増加または減少させる
請求項８記載のニューラルネットワーク学習方法。
【請求項１０】
ニューラルネットワークの学習において、学習データと当該ニューラルネットワークによる出力との誤差を算出し、
前記誤差の減少に応じて線形化量を増加または減少させる
請求項８記載のニューラルネットワーク学習方法。
【請求項１１】
コンピュータに、
ニューラルネットワークを学習する学習処理、
前記ニューラルネットワークで用いられる活性化関数に含まれるパラメータであって、増加または減少させることにより当該活性化関数を線形関数に近づけるパラメータである線形化量を決定する線形化量決定処理、および、
前記線形化量を増加または減少させることにより線形関数に収束すると判断される前記活性化関数を当該線形関数に置き換えて、置き換えた線形関数を用いる層間の重みを集約する集約処理を実行させ、
前記学習処理で、前記ニューラルネットワークの学習において、当該ニューラルネットワークによる出力に基づく評価値を算出させ、
前記線形化量決定処理で、前記評価値が予め定められた基準を満たす場合に、前記線形化量を変化させる
ためのニューラルネットワーク学習プログラム。
【請求項１２】
コンピュータに、
学習処理で、ニューラルネットワークに、正解ラベル付のテストデータを入力した際の判定精度を算出させ、
線形化量決定処理で、前記判定精度の増加に応じて線形化量を増加または減少させる
請求項１１記載のニューラルネットワーク学習プログラム。
【請求項１３】
コンピュータに、
学習処理で、ニューラルネットワークの学習において、学習データと当該ニューラルネットワークによる出力との誤差を算出させ、
線形化量決定処理で、前記誤差の減少に応じて線形化量を増加または減少させる
請求項１１記載のニューラルネットワーク学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワークを学習するニューラルネットワーク学習装置、ニューラルネットワーク学習方法およびニューラルネットワーク学習プログラムに関する。
【背景技術】
【０００２】
ニューラルネットワークは、機械学習で用いられるモデルの一つであり、人間の脳内にある神経回路網を数学的なモデルで表現したものである。ニューラルネットワークは、入力層および出力層を含み、各層の間には、ニューロン同士の繋がりの強さを示す重みＷが考慮される。また、複雑なモデルを表現するために、入力層と出力層の間に中間層（隠れ層）が含まれる。なお、神経科学におけるニューラルネットワークと区別するため、機械学習で用いられるニューラルネットワークのことは人工ニューラルネットワークと呼ばれることもある。【０００３】
単純パーセプトロンと呼ばれる初期の人工ニューラルネットワークは、入力（Ｉｎｉ）に、各層の重み（Ｗ）を用いて出力（Ｏｕｔｉ）を得る構造を有する。図３２は、ニューラルネットワークの構造を示す説明図である。図３２に示す人工ニューラルネットワークにおいて、例えば、Ｏｕｔ１は、各Ｉｎｉ（ｉ＝１〜３）からの出力に重みｗ１ｉを乗じて加算された結果である。【０００４】
図３３は、線形分離可能な問題と線形非分離な問題を模式的に表した説明図である。単純パーセプトロンを用いることで、図３３（ａ）に示すような線形分離可能な問題を解くことができる。一方、単純パーセプトロンは、単純な構造であるため、図３３（ｂ）に示すような線形非分離である問題を解くことができない。そこで、線形非分離である問題に対応できるようにするため、多層パーセプトロンが一般的に用いられている。【０００５】
図３４は、多層パーセプトロンを示す説明図である。多層パーセプトロンは、入力（Ｉｎｉ）に、各層の重み（Ｗｉ）を用いて出力（Ｏｕｔｉ）を得る構造を有し、図３４に示す多層パーセプトロンは、４つの隠れ層を有する。例えば、中間層Ｈ１１は、以下に示す式１により計算される。同様の方法で、各中間層における値が順方向に計算される。【０００６】
【数１】
2020137090.tif 000003
【０００７】
式１において、ｂはバイアス値である。また、式１におけるｗ１ｉは、以下に示す式２により計算される。【０００８】
【数２】
2020137090.tif 000004
【０００９】
図３５は、非線形関数を示す説明図である。脳をモデル化するために用いられる活性化関数ψ（ｘ）は、図３５に示すような非線形関数が用いられる。多層パーセプトロンを用いることで、線形非分離問題であっても解くことが可能になる。【００１０】
ニューラルネットワークは、例えば、ディープラーニングに用いられ、複雑な入力に対して精度の高い結果を出力できるため、様々な分野での活用が広がっている。そのため、ニューラルネットワークの学習を適切に行う方法が各種提案されている。【００１１】
例えば、特許文献１には、学習工程を効率的に完了させるニューラルネットワークの学習方法が記載されている。特許文献１に記載された学習方法では、ニューラルネットワークの出力の精度が改善されない状態になった場合に、パラメータを過去の状態に戻すとともに学習率も低下させ、過去の状態に戻されたパラメータおよび低下させた学習率で再度学習を行う。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２０１８−１６０２００号公報
【発明の概要】
【発明が解決しようとする課題】
【００１３】
ニューラルネットワークの学習過程において、入力に対応する学習データと出力との誤差から重みを修正する誤差逆伝播法が用いられる。図３６は、コンピュータを用いてニューラルネットワークを学習する一般的な方法の例を示す説明図である。【００１４】
コンピュータは、学習データセット１１０から学習データ１１１を決定する（ステップＳ１１０）。コンピュータは、決定した学習データ１１１を入力データ１１２として多層ニューラルネットワーク１１３へ入力し（ステップＳ１２０）、出力データ１１４を取得する（ステップＳ１３０）。コンピュータは、出力データ１１４と学習データ１１１の誤差を計算する（ステップＳ１４０）。コンピュータは、計算した誤差を入力方向へ伝搬させ、重みを修正する（ステップＳ１５０、ステップＳ１６０）。なお、修正量は、学習率により決定される。入力層までの重みが修正されると、コンピュータは、ステップＳ１１０以降の処理を繰り返す。【００１５】
線形分離可能な問題は、単純パーセプトロンで解決できることが知られている。しかし、特許文献１に記載されている方法のように、現在のニューラルネットワークを活用する場面では、学習対象が線形分離可能か不可能かに関わらず、線形非分離な問題として学習が行われる。この場合、各層の計算に非線形関数が用いられるため、各層の重みの意味が分からず、構造として学習前に設計したニューラルネットワークの階層（または中間層）の数を変更させられないために計算量が削減できないという問題がある。【００１６】
そこで、本発明は、計算量を削減するようにニューラルネットワークを学習できるニューラルネットワーク学習装置、ニューラルネットワーク学習方法およびニューラルネットワーク学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明によるニューラルネットワーク学習装置は、ニューラルネットワークを学習する学習部と、ニューラルネットワークで用いられる活性化関数に含まれるパラメータであって、増加または減少させることによりその活性化関数を線形関数に近づけるパラメータである線形化量を決定する線形化量決定部と、線形化量を増加または減少させることにより線形関数に収束すると判断される活性化関数をその線形関数に置き換えて、置き換えた線形関数を用いる層間の重みを集約する集約部とを備え、学習部が、ニューラルネットワークの学習において、そのニューラルネットワークによる出力に基づく評価値を算出し、線形化量決定部が、評価値が予め定められた基準を満たす場合に、線形化量を変化させることを特徴とする。【００１８】
本発明によるニューラルネットワーク学習方法は、ニューラルネットワークを学習し、ニューラルネットワークの学習において、そのニューラルネットワークによる出力に基づく評価値を算出し、ニューラルネットワークで用いられる活性化関数に含まれるパラメータであって、増加または減少させることによりその活性化関数を線形関数に近づけるパラメータである線形化量を決定し、評価値が予め定められた基準を満たす場合に、線形化量を変化させ、線形化量を増加または減少させることにより線形関数に収束すると判断される活性化関数をその線形関数に置き換えて、置き換えた線形関数を用いる層間の重みを集約することを特徴とする。【００１９】
本発明によるニューラルネットワーク学習プログラムは、コンピュータに、ニューラルネットワークを学習する学習処理、ニューラルネットワークで用いられる活性化関数に含まれるパラメータであって、増加または減少させることによりその活性化関数を線形関数に近づけるパラメータである線形化量を決定する線形化量決定処理、および、線形化量を増加または減少させることにより線形関数に収束すると判断される活性化関数をその線形関数に置き換えて、置き換えた線形関数を用いる層間の重みを集約する集約処理を実行させ、学習処理で、ニューラルネットワークの学習において、そのニューラルネットワークによる出力に基づく評価値を算出させ、線形化量決定処理で、評価値が予め定められた基準を満たす場合に、線形化量を変化させることを特徴とする。
【発明の効果】
【００２０】
本発明によれば、計算量を削減するようにニューラルネットワークを学習できる。
【図面の簡単な説明】
【００２１】
【図１】本発明によるニューラルネットワーク学習装置の第一の実施形態の構成例を示すブロック図である。
【図２】Ｓｃａｌｉｎｇ  Ｔａｎｈの変化例を示す説明図である。
【図３】線形化量を増加させる度合いの例を示す説明図である。
【図４】線形近似を判定する際に設定する範囲の例を示す説明図である。
【図５】重みを集約したニューラルネットワークの例を示す説明図である。
【図６】活性化関数を部分的に線形近似する処理の例を示す説明図である。
【図７】Ｓｃａｌｉｎｇ  Ｓｉｇｍｏｉｄの変化例を示す説明図である。
【図８】Ｓｃａｌｉｎｇ  Ｓｉｇｍｏｉｄの傾きの変化例を示す説明図である。
【図９】Ｓｃａｌｉｎｇ  ＲｅＬＵの変化例を示す説明図である。
【図１０】Ｓｃａｌｉｎｇ  ＰＲｅＬＵの変化例を示す説明図である。
【図１１】Ｍｉｎ  ａｎｄ  Ｍａｘの変化例を示す説明図である。
【図１２】一般化Ｓｃａｌｉｎｇ  Ｔａｎｈの変化例を示す説明図である。
【図１３】一般化Ｓｃａｌｉｎｇ  Ｔａｎｈの傾きの変化例を示す説明図である。
【図１４】第一の実施形態のニューラルネットワーク学習装置の動作例を示すフローチャートである。
【図１５】重みを集約したニューラルネットワークの例を示す説明図である。
【図１６】本発明によるニューラルネットワーク学習装置の第二の実施形態の構成例を示すブロック図である。
【図１７】第二の実施形態のニューラルネットワーク学習装置の動作例を示すフローチャートである。
【図１８】入力次元を増加させた場合の線形分離化の例を示す説明図である。
【図１９】本発明によるニューラルネットワーク学習装置の第三の実施形態の構成例を示すブロック図である。
【図２０】第三の実施形態のニューラルネットワーク学習装置の動作例を示すフローチャートである。
【図２１】本発明によるニューラルネットワーク学習装置の第四の実施形態の構成例を示すブロック図である。
【図２２】第四の実施形態のニューラルネットワーク学習装置の動作例を示すフローチャートである。
【図２３】本発明によるニューラルネットワーク学習装置の第五の実施形態の構成例を示すブロック図である。
【図２４】ニューラルネットワークを再構築する方法の例を示す説明図である。
【図２５】ニューラルネットワークを再構築する方法の他の例を示す説明図である。
【図２６】第五の実施形態のニューラルネットワーク学習装置の動作例を示すフローチャートである。
【図２７】本発明によるニューラルネットワーク学習装置の第六の実施形態の構成例を示すブロック図である。
【図２８】ニューラルネットワークを再構成する処理の例を示す説明図である。
【図２９】第六の実施形態のニューラルネットワーク学習装置の動作例を示すフローチャートである。
【図３０】本発明によるニューラルネットワーク学習装置の概要を示すブロック図である。
【図３１】少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【図３２】ニューラルネットワークの構造を示す説明図である。
【図３３】線形分離可能な問題と線形非分離な問題を模式的に表した説明図である。
【図３４】多層パーセプトロンを示す説明図である。
【図３５】非線形関数を示す説明図である。
【図３６】コンピュータを用いてニューラルネットワークを学習する一般的な方法の例を示す説明図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態を図面を参照して説明する。
【００２３】
実施形態１．
図１は、本発明によるニューラルネットワーク学習装置の第一の実施形態の構成例を示すブロック図である。本発明におけるニューラルネットワーク学習装置１００は、学習データ記憶部１０と、学習データ決定部２０と、学習部３０と、線形化量決定部４０と、集約部５０とを備えている。
【００２４】
学習データ記憶部１０は、後述する学習部３０が学習に用いる複数の学習データ（学習データセット）を記憶する。また、学習データ記憶部１０は、後述する学習部３０がモデルを生成するために必要な各種パラメータを記憶していてもよい。本実施形態では、学習前に入力層、中間層の数および出力層、並びに、各層の接続形態を含むネットワーク構造がパラメータ等を用い予め定められ、学習データ記憶部１０に記憶されているものとする。学習データ記憶部１０は、例えば、磁気ディスク等により実現される。
【００２５】
学習データ決定部２０は、学習データ記憶部１０から学習データを取得し、学習部３０に入力する。学習データ決定部２０が取得する学習データを決定する方法は任意である。また、学習データ決定部２０は、後述する学習部３０が学習に用いた学習データを特定してもよい。
【００２６】
学習部３０は、学習データ決定部２０により入力された学習データを用いてニューラルネットワークを学習する。学習部３０は、広く知られた方法を用いてニューラルネットワークを学習すればよい。本実施形態では、学習部３０が誤差逆伝播法を用いてニューラルネットワークを学習する方法を説明する。具体的には、学習部３０は、入力された学習データを（多層）ニューラルネットワークへ入力し、出力を取得する。そして、学習部３０は、出力と学習データとの誤差を算出し、算出された誤差を出力から入力方向へ伝搬させ、入力層までの各層の重みを修正する。修正量は、学習率により決定されるため、用いられる学習率は、予め定めておけばよい。
【００２７】
さらに、本実施形態では、学習部３０は、ニューラルネットワークの学習の際、そのニューラルネットワークによる出力に基づく評価値を算出する。学習部３０が算出する評価値として、出力と学習データとの誤差や、検証データによる出力の判定精度、出力回数などが挙げられる。
【００２８】
本実施形態では、学習部３０が、算出した誤差を評価値として用いる場合について説明する。すなわち、学習部３０は、ニューラルネットワークの学習において、学習データとそのニューラルネットワークによる出力との誤差を算出する。
【００２９】
線形化量決定部４０は、ニューラルネットワークで用いられる活性化関数に含まれるパラメータであって、増加または減少させることによりその活性化関数を線形関数に近づけるパラメータ（以下、線形化量と記す。）を決定する。具体的には、線形化量決定部４０は、学習部３０によって算出された評価値が予め定められた基準を満たす場合に、線形化量を予め定めた分だけ変化させる。本実施形態では、線形化量を増加または減少させる方法を説明する。
【００３０】
以下の式３に例示する関数は、線形化量γを含む活性化関数の一例である。
【００３１】
【数３】
2020137090.tif 000005
【００３２】
式３に示す活性化関数は、Ｓｃａｌｉｎｇ  Ｔａｎｈと呼ばれる活性化関数であり、γを増加させると線形関数ｙ＝ｘに近づく。図２は、Ｓｃａｌｉｎｇ  Ｔａｎｈの変化例を示す説明図である。図２では、γを１から１０００まで変化させた場合のグラフの変化を例示している。図２に例示するように、上記の式３では、γ＞０のときに、出力が±γを超えない。また、式３における微分は、以下の式４に示すように、原点付近で傾き１になる。
【００３３】
【数４】
2020137090.tif 000006
【００３４】
線形化量決定部４０は、学習過程において、線形化量γを逐次増加または減少させる。本実施形態では、線形化量決定部４０は、誤差の減少に応じて線形化量を増加または減少させる。線形化量決定部４０は、例えば、評価値として算出された誤差が予め定めた閾値より小さくなったときに線形化量を増加または減少させてもよい。線形化量を変更する度合いは、学習率等と同様に予め定めておけばよく、線形化量決定部４０は、例えば、誤差ｅｒｒに対し、以下の式５で算出されるγを適用してもよい。
【００３５】
【数５】
2020137090.tif 000007
【００３６】
図３は、線形化量を増加させる度合いの例を示す説明図である。図３に例示するグラフは、上記式５によって定められる度合いであり、誤差が小さくなるほど線形化量が大きく設定されることを示す。
【００３７】
集約部５０は、線形化量を増加または減少させることにより線形関数に収束すると判断される活性化関数をその線形関数に置き換える。例えば、上記式３に示す活性化関数を用いた場合に、学習過程において線形化量γを増加させた結果、学習の終了時にγ＝∞（無限大）にできるとする。この場合、集約部５０は、線形近似可能と判断し、活性化関数を以下の式６に示すように、傾き１の線形関数に置き換える。
【００３８】
【数６】
2020137090.tif 000008
【００３９】
また、集約部５０は、γを予め定めた閾値（例えばγ＝１６など）以上の場合に、線形近似可能と判定して、線形関数に置き換えてもよい。また、中間層の出力に対して集約させる線形関数の傾きと見なせる範囲（以下、線形近似範囲と記す。）を設定しておき、集約部５０は、γを増加させたときの活性化関数の傾きがその範囲内の場合に線形近似可能と判定して、線形関数に置き換えてもよい。
【００４０】
図４は、線形近似を判定する際に設定する範囲の例を示す説明図である。図４に例示するように、原点付近の範囲を設定しておき、集約部５０は、この範囲内における傾きを算出してもよい。例えば、集約させる線形関数の傾きが１の場合、傾き＝０．９５を傾き１と見なせる範囲と設定しておき、集約部５０は、γを増加させたときの活性化関数の傾きが０．９５以上の場合に線形近似可能と判定して、線形関数に置き換えてもよい。
【００４１】
なお、集約部５０は、γ＝∞にできないと判断した場合、活性化関数を線形関数に置き換えられないと判断して、集約処理を中止すればよい。また、上記説明では、誤差の減少に応じて線形化量γを増加させる方法を説明したが、学習部３０がγ＝１で学習を行った後で、推論の精度を維持できるようにγ＝∞に変更されてもよい。
【００４２】
そして、集約部５０は、置き換えた線形関数を用いる層間の重みを集約する。例えば、図３４に例示するニューラルネットワークで用いる活性化関数が全て線形関数に置き換え可能であったとする。この場合、集約部５０は、図３４に例示する重みＷ１〜Ｗ５を以下の式７に例示する重みＷに集約する。
【００４３】
Ｗ＝Ｗ５Ｗ４Ｗ３Ｗ２Ｗ１  （式７）
【００４４】
集約された重みＷを用いることで、推論時には、以下に例示する式８を用いて計算を行うことができる。
【００４５】
Ｏｕｔ＝Ｗ・Ｉｎ    （式８）
【００４６】
このように集約部５０が重みを集約することで、計算量を削減することが可能になる。例えば、上記に示す式７の例では、計算量を５分の１に削減することが可能になる。
【００４７】
なお、集約部５０は、全ての層間の重みだけでなく、一部の層間の重みを集約してもよい。例えば、一部の活性化関数のみ線形関数に置き換えられた場合、集約部５０は、置き換えた一部の層間の重みのみ集約してもよい。例えば、図３４に例示するニューラルネットワークの入力層、第一層および第二層の活性化関数を線形関数に置き換え可能であったとする。この場合、集約部５０は、図３４に例示する重みＷ１〜Ｗ５を以下の式９に例示する重みＷｐａｒｔに集約してもよい。
【００４８】
Ｗｐａｒｔ＝Ｗ３Ｗ２Ｗ１  （式９）
【００４９】
図５は、重みを集約したニューラルネットワークの例を示す説明図である。図５に例示するニューラルネットワークに重みを集約した場合、一部を集約した重みＷｐａｒｔを用いることで、推論時には、以下に例示する式１０を用いて計算を行うことができる。
【００５０】
Ｏｕｔ＝Ｗｐａｒｔ・Ｉｎ    （式１０）
【００５１】
以下、活性化関数を部分的に線形近似する場合の具体例を説明する。図６は、活性化関数を部分的に線形近似する処理の例を示す説明図である。活性化関数を部分的に線形近似できる状態とは、一つのニューラルネットワークに含まれる一部のニューラルネットワークの構造を変更できる状態を示す。例えば、部分的に「ある特徴量」を抽出するための構造を設計した場合には、各特徴量を抽出する構造自体が、一部のニューラルネットワークに対応する。
【００５２】
例えば、図６に例示するように、ある画像データのセットから、丸、三角および四角を分類する処理を想定した場合、丸の有無の判定、三角の有無の判定および四角の有無の判定を別々のネットワーク構造で構成することができる。最終的に三種類の判定回路の出力をまとめて一つの出力を作る構成を一つのニューラルネットワークとした場合、例えば、丸の有無の判定だけ線形近似できる状況が部分的に線形近似できる状況に対応する。
【００５３】
なお、上記説明では、Ｓｃａｌｉｎｇ  Ｔａｎｈを活性化関数の一例として説明したが、活性化関数は、Ｓｃａｌｉｎｇ  Ｔａｎｈに限定されない。以下、線形化量を変更することにより線形関数に近づく活性化関数の例をいくつか説明する。
【００５４】
第一の他の活性化関数の例として、Ｓｃａｌｉｎｇ  Ｓｉｇｍｏｉｄが挙げられる。Ｓｃａｌｉｎｇ  Ｓｉｇｍｏｉｄは、以下に例示する式１１で表される関数であり、γを１から∞まで増加させたときに、φ（ｘ）＝０．２５ｘ＋０．５に近似される関数である。また、式１１の微分は、以下の式１２で表される。
【００５５】
【数７】
2020137090.tif 000009
【００５６】
図７は、Ｓｃａｌｉｎｇ  Ｓｉｇｍｏｉｄの変化例を示す説明図である。また、図８は、Ｓｃａｌｉｎｇ  Ｓｉｇｍｏｉｄの傾きの変化例を示す説明図である。図７では、γを１から１０００まで変化させた場合のグラフの変化を例示している。図７に例示するようにγを増加させていくと、図７に例示するグラフは、図８に例示する傾きで示されるように、最終的に切片０．５を通る傾き０．２５の直線に近似される。
【００５７】
第二の他の活性化関数の例として、Ｓｃａｌｉｎｇ  ＲｅＬＵが挙げられる。Ｓｃａｌｉｎｇ  ＲｅＬＵは、以下に例示する式１３で表される関数であり、γを０から−∞まで減少させたときに、φ（ｘ）＝ｘに近似される関数である。また、式１３の微分は、以下の式１４で表される。
【００５８】
【数８】
2020137090.tif 000010
【００５９】
図９は、Ｓｃａｌｉｎｇ  ＲｅＬＵの変化例を示す説明図である。図９では、γを０から−１０００まで変化させた場合のグラフの変化を例示している。図９に例示するように、γを減少させていくと、図９に例示するグラフは、最終的に、原点を通る傾き１の直線に近似される。
【００６０】
第三の他の活性化関数の例として、Ｓｃａｌｉｎｇ  ＰＲｅＬＵが挙げられる。Ｓｃａｌｉｎｇ  ＰＲｅＬＵは、以下に例示する式１５で表される関数であり、γを０から（１−α）（ただし、０＜α＜１）まで増加させたときに、φ（ｘ）＝ｘに近似される関数である。また、式１５の微分は、以下の式１６で表される。
【００６１】
【数９】
2020137090.tif 000011
【００６２】
図１０は、Ｓｃａｌｉｎｇ  ＰＲｅＬＵの変化例を示す説明図である。図１０では、α＝０．２とし、γを０から０．８まで変化させた場合のグラフの変化を例示している。図１０に例示するように、γを増加させていくと、図１０に例示するグラフは、最終的に、原点を通る傾き１の直線に近似される。
【００６３】
第四の他の活性化関数の例として、Ｍｉｎ  ａｎｄ  Ｍａｘが挙げられる。Ｍｉｎ  ａｎｄ  Ｍａｘは、以下に例示する式１７で表される関数であり、γを０から∞まで増加させたときに、φ（ｘ）＝ｘに近似される関数である。また、式１７の微分は、以下の式１８で表される。
【００６４】
【数１０】
2020137090.tif 000012
【００６５】
図１１は、Ｍｉｎ  ａｎｄ  Ｍａｘの変化例を示す説明図である。図１１では、γを１から１０００まで変化させた場合のグラフの変化を例示している。図１１に例示するように、γを増加させていくと、図１１に例示するグラフは、最終的に、原点を通る傾き１の直線に近似される。
【００６６】
他にも、上述するＳｃａｌｉｎｇ  Ｔａｎｈを一般化した一般化Ｓｃａｌｉｎｇ  Ｔａｎｈが活性化関数として用いられてもよい。一般化Ｓｃａｌｉｎｇ  Ｔａｎｈは、以下に例示する式１９で表される関数であり、γを１から∞まで増加させたときに、φ（ｘ）＝αｘに近似される関数である。また、式１９の微分は、以下の式２０で表される。
【００６７】
【数１１】
2020137090.tif 000013
【００６８】
図１２は、一般化Ｓｃａｌｉｎｇ  Ｔａｎｈの変化例を示す説明図である。また、図１３は、一般化Ｓｃａｌｉｎｇ  Ｔａｎｈの傾きの変化例を示す説明図である。図１２では、α＝３とし、γを１から１０００まで変化させた場合のグラフの変化を例示している。図１２に例示するように、γを増加させていくと、図１２に例示するグラフは、図１３に例示する傾きで示されるように、最終的に原点を通る傾きα＝３の直線に近似される。
【００６９】
以降、学習処理が終了するまで、上記処理が繰り返される。
【００７０】
学習データ決定部２０と、学習部３０と、線形化量決定部４０と、集約部５０とは、プログラム（ニューラルネットワーク学習プログラム）に従って動作するコンピュータのプロセッサ（例えば、ＣＰＵ（Central Processing Unit ）、ＧＰＵ（Graphics Processing Unit）、ＦＰＧＡ（field-programmable gate array ））によって実現される。
【００７１】
例えば、プログラムは、ニューラルネットワーク学習装置の記憶部（図示せず）に記憶され、プロセッサは、そのプログラムを読み込み、プログラムに従って、学習データ決定部２０、学習部３０、線形化量決定部４０および集約部５０として動作してもよい。また、ニューラルネットワーク学習装置の機能がＳａａＳ（Software as a Service ）形式で提供されてもよい。
【００７２】
学習データ決定部２０と、学習部３０と、線形化量決定部４０と、集約部５０とは、それぞれが専用のハードウェアで実現されていてもよい。また、各装置の各構成要素の一部又は全部は、汎用または専用の回路（circuitry ）、プロセッサ等やこれらの組合せによって実現されもよい。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組合せによって実現されてもよい。
【００７３】
また、ニューラルネットワーク学習装置の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【００７４】
次に、本実施形態のニューラルネットワーク学習装置の動作を説明する。図１４は、本実施形態のニューラルネットワーク学習装置の動作例を示すフローチャートである。学習データ決定部２０は、学習データ記憶部１０に記憶された学習データセットから学習データを決定し（ステップＳ１１）、入力データとして学習部３０に入力する（ステップＳ１２）。学習部３０は、入力された学習データを（多層）ニューラルネットワークに適用することで出力を取得し（ステップＳ１３）、出力と学習データとの誤差を算出する（ステップＳ１４）。
【００７５】
学習部３０は、誤差を出力から入力方向へ伝搬させて入力層までの重みを修正する（ステップＳ１５）。一方、線形化量決定部４０は、誤差の減少に応じて線形化量を増加または減少させる（ステップＳ１６）。集約部５０は、学習処理の終了条件を満たしているか判断する（ステップＳ１７）。終了条件は任意であり、例えば、予め定めた回数や時間等が挙げられる。終了条件を満たしていない場合（ステップＳ１７におけるＮｏ）、ステップＳ１１以降の処理が繰り返される。
【００７６】
一方、終了条件を満たしている場合（ステップＳ１７におけるＹｅｓ）、集約部５０は、線形関数に収束すると判断される活性化関数をその線形関数に置き換えて、置き換えた線形関数を用いる層間の重みを集約する（ステップＳ１８）。
【００７７】
以上のように、本実施形態では、学習部３０が、ニューラルネットワークの学習において、そのニューラルネットワークによる出力に基づく評価値（具体的には、誤差）を算出し、線形化量決定部４０が、評価値が予め定められた基準を満たす場合に、線形化量を変化させる。具体的には、線形化量決定部４０は、誤差の減少に応じて線形化量を増加または減少させる。そして、集約部５０が、線形化量を増加または減少させることにより線形関数に収束すると判断される活性化関数をその線形関数に置き換えて、置き換えた線形関数を用いる層間の重みを集約する。よって、計算量を削減するようにニューラルネットワークを学習できる。
【００７８】
例えば、特許文献１に記載されているような一般的なニューラルネットワークの学習において、学習率を調整して最適解を求めることは行われていたが、予め定められた非線形な活性化関数を変更するという技術的思想は存在しなかった。一方、本実施形態では、学習部３０が、多層ニューラルネットワークの学習過程にて、拡大縮小が可能な活性化関数を用いて、学習途中で活性化関数を線形変更へ変形させる。すなわち、パラメータを変えることにより、元の非線形関数を線形関数に近づけたり、元の非線形関数に戻したりできる活性化関数が用いられる。そのため、学習対象が線形分離可能か不可能かの判断が可能になる。
【００７９】
図１５は、重みを集約したニューラルネットワークの例を示す説明図である。例えば、図３４に例示するニューラルネットワークについて、線形化量を増加または減少させた学習の結果、Ｗ１の重みが以下の式２１で示す行列で表されるものとする。この場合、以下の式２１で示す行列は、式２２で示す２つの（行列）式に変形できる。そこで、集約部５０は、図１５の部分Ｐ１に示すように重みを集約したニューラルネットワークを構築してもよい。
【００８０】
【数１２】
2020137090.tif 000014
【００８１】
また、Ｗ４の重みについて、ｗ１２、ｗ１３、ｗ２１、ｗ２２、ｗ３１、および、ｗ３３が十分小さいとする。この場合、集約部５０は、図１５の部分Ｐ２に示すように、接続関係を削除する、いわゆる枝刈りをすることによってニューラルネットワークを構築してもよい。
【００８２】
次に、本実施形態のニューラルネットワーク学習装置の変形例を説明する。上記実施形態では、線形化量決定部４０が、誤差の減少に応じて線形化量を増加または減少させた。線形化量決定部４０は、線形化量を増加または減少させる条件として、さらに、中間層の出力を考慮してもよい。具体的には、線形化量決定部４０は、誤差の減少に加え、中間層の出力が、集約させる線形関数の傾きと見なせるものとして設定された範囲（すなわち、線形近似範囲）の場合に、線形化量を増加または減少させてもよい。
【００８３】
実施形態２．
次に、本発明によるニューラルネットワーク学習装置の第二の実施形態を説明する。第一の実施形態では、学習部４０が評価値として算出した誤差に基づいて線形化量を増加または減少させる方法を説明した。本実施形態では、評価値として検証データによる出力の判定精度を用いて線形化量を変更する方法を説明する。
【００８４】
図１６は、本発明によるニューラルネットワーク学習装置の第二の実施形態の構成例を示すブロック図である。本実施形態のニューラルネットワーク学習装置２００は、学習データ記憶部１０と、テストデータ記憶部１２と、学習データ決定部２０と、テストデータ決定部２２と、学習部３２と、線形化量決定部４２と、集約部５０とを備えている。
【００８５】
すなわち、本実施形態のニューラルネットワーク学習装置２００は、第一の実施形態のニューラルネットワーク学習装置１００と比較して、テストデータ記憶部１２およびテストデータ決定部２２をさらに備え、学習部３０および線形化量決定部４０の代わりに、それぞれ学習部３２および線形化量決定部４２を備えている点において異なる。
【００８６】
テストデータ記憶部１２は、後述する学習部３２が、ニューラルネットワークの判定精度を算出する際に用いる正解ラベル付のテストデータを記憶する。テストデータ記憶部１２は、例えば、磁気ディスク等により実現される。
【００８７】
テストデータ決定部２２は、テストデータ記憶部１２からテストデータを取得し、学習部３２に入力する。テストデータ決定部２２が取得するテストデータを決定する方法は任意である。また、テストデータ決定部２２は、後述する学習部３２が評価に用いたテストデータを特定してもよい。
【００８８】
学習部３２は、第一の実施形態と同様の方法を用いて、学習データ決定部２０により入力された学習データを用いてニューラルネットワークを学習する。さらに、本実施形態では、学習部３２は、入力されたテストデータを（多層）ニューラルネットワークへ入力し、出力を取得する。そして、学習部３２は、出力とテストデータの正解ラベルとに基づいて判定精度を算出する。
【００８９】
具体的には、学習部３２は、ニューラルネットワークに、正解ラベル付のテストデータを入力した際の判定精度を算出する。判定精度を算出する方法は任意であり、例えば正解率を算出する方法など、広く知られた方法が用いられれば良い。
【００９０】
線形化量決定部４２は、算出された判定精度の増加に応じて線形化量を増加または減少させる。線形化量決定部４２は、例えば、評価値として算出された判定精度が目標とした値になったとき（予め定めた閾値よりも高くなったとき）に線形化量を増加または減少させてもよい。線形化量を変更させる度合いは、第一の実施形態と同様に予め定めておけばよい。
【００９１】
集約部５０は、第一の実施形態と同様、線形化量を増加または減少させることにより線形関数に収束すると判断される活性化関数をその線形関数に置き換え、置き換えた線形関数を用いる層間の重みを集約する。
【００９２】
以降、学習処理が終了するまで、上記処理が繰り返される。なお、線形化量決定部４２は、学習データが入力されるごとに、線形化量を更新してもよく、複数の学習データによる学習が行われるごとに、線形化量を更新してもよい。
【００９３】
学習データ決定部２０と、テストデータ決定部２２と、学習部３２と、線形化量決定部４２と、集約部５０とは、プログラム（ニューラルネットワーク学習プログラム）に従って動作するコンピュータのプロセッサによって実現される。
【００９４】
次に、本実施形態のニューラルネットワーク学習装置の動作を説明する。図１７は、本実施形態のニューラルネットワーク学習装置の動作例を示すフローチャートである。学習データを入力して重みを修正するステップＳ１１からステップＳ１５までの処理は、図１４に例示する処理と同様である。
【００９５】
テストデータ決定部２２は、テストデータ記憶部１２に記憶されたテストデータセットからテストデータを決定し（ステップＳ２１）、入力データとして学習部３２に入力する（ステップＳ２２）。学習部３２は、入力されたテストデータを（多層）ニューラルネットワークに適用することで出力を取得し（ステップＳ２３）、出力とテストデータに基づいて正解率（判定精度）を算出する（ステップＳ２４）。
【００９６】
線形化量決定部４２は、判定精度が目標とした値になったか否か判断する（ステップＳ２５）。判定精度が目標とした値になった場合（ステップＳ２５におけるＹｅｓ）、線形化量決定部４２は、線形化量γを増加または減少させる（ステップＳ２６）。一方、判定精度が目標とした値になっていない場合（ステップＳ２５におけるＮｏ）、線形化量γは変更せずに処理を継続する。
【００９７】
以降、集約部５０が学習処理の終了条件を判断して活性化関数を線形関数に置き換えるステップＳ１７およびステップＳ１８の処理は、図１４に例示する処理と同様である。
【００９８】
以上のように、本実施形態では、学習部３２が、ニューラルネットワークに、ラベル付のテストデータを入力した際の判定精度を算出し、線形化量決定部４２が、判定精度の増加に応じて線形化量を増加または減少させる。よって、第一の実施形態と同様、計算量を削減するようにニューラルネットワークを学習できる。
【００９９】
なお、第一の実施形態では、学習部３０が評価値として誤差を算出し、第二の実施形態では、学習部３２が評価値として判定精度を算出する方法を説明した。他にも、学習部は、学習結果の出力回数を評価値としてもよい。
【０１００】
実施形態３．
次に、本発明によるニューラルネットワーク学習装置の第三の実施形態を説明する。第一の実施形態および第二の実施形態では、誤差や判定精度に基づいて線形化量を変更させていた。一方、線形化量を変更することにより活性化関数を更新した場合、線形分離できないデータの影響によって、誤差の増大や判定精度の低下が想定される。
【０１０１】
一方、線形分離できないデータの集合であっても、データの入力次元を増加させることで線形分離できるようになることが知られている。図１８は、入力次元を増加させた場合の線形分離化の例を示す説明図である。図１８に例示するように、二次元のＸＯＲ（exclusive or）は、線形分離できない。一方、入力次元を四次元に増加させ、増加させた次元のデータの値を０（または１）にした場合、三次元線形空間を用いてＸＯＲを線形分離可能になる。図１８（ａ）に例示する分離は、追加した次元の値が０の場合に、１を線形分離している例であり、図１８（ｂ）に例示する分離は、追加した次元の値が１の場合に、０を線形分離している例である。
【０１０２】
そこで、本実施形態では、線形化量の変更に応じて学習データを修正する方法を説明する。図１９は、本発明によるニューラルネットワーク学習装置の第三の実施形態の構成例を示すブロック図である。本実施形態のニューラルネットワーク学習装置３００は、学習データ記憶部１０と、学習データ決定部２０と、学習部３０と、線形化量決定部４０と、集約部５０と、入力次元追加部６０とを備えている。
【０１０３】
すなわち、本実施形態のニューラルネットワーク学習装置３００は、第一の実施形態のニューラルネットワーク学習装置１００と比較して、入力次元追加部６０をさらに備える点において異なる。
【０１０４】
入力次元追加部６０は、線形化量が変更されたあとで評価値が悪化した場合、次元数を増加させるように学習データの値を追加し、ニューラルネットワークの入力層の次元数を増加させるようにニューラルネットワークの構造を変更する。具体的には、入力次元追加部６０は、線形化量を増加または減少させたあとで誤差が大きくなる場合、ｎ個の学習データ（例えば、［Ｉｎ１，…，Ｉｎｉ，Ｏｕｔ１，…，Ｏｕｔｊ］）に、入力次元を１次元増加させた学習データ（例えば、［Ｉｎ１，…，Ｉｎｉ，Ｉｎｉ＋１，Ｏｕｔ１，…，Ｏｕｔｊ］＝［Ｉｎ１，…，Ｉｎｉ，１，１，…，１］）を追加する。そして、入力次元追加部６０は、入力次元を１増加させるように、多層ニューラルネットワークの構造を変更する。
【０１０５】
以降、入力次元を増加させた学習データを用いて、学習部３０による処理が繰り返される。なお、本実施形態の入力次元追加部６０を第二の実施形態のニューラルネットワーク学習装置２００が、さらに備える構成であってもよい。この場合、入力次元追加部６０は、線形化量を増加または減少させたあとで判定精度が悪くなる場合、ｎ個の学習データに、入力次元を１次元増加させた学習データを追加し、入力次元を１増加させるように、多層ニューラルネットワークの構造を変更すればよい。
【０１０６】
学習データ決定部２０と、学習部３０と、線形化量決定部４０と、集約部５０と、入力次元追加部６０とは、プログラム（ニューラルネットワーク学習プログラム）に従って動作するコンピュータのプロセッサによって実現される。
【０１０７】
次に、本実施形態のニューラルネットワーク学習装置の動作を説明する。図２０は、本実施形態のニューラルネットワーク学習装置の動作例を示すフローチャートである。学習データを入力して重みを修正し、線形化量を変更するステップＳ１１からステップＳ１６までの処理は、図１４に例示する処理と同様である。
【０１０８】
入力次元追加部６０は、線形化量を変更したあとで評価値が悪化したか否か判断する（ステップＳ３１）。入力次元追加部６０は、例えば、誤差が大きくなったか否か、判定精度が悪くなったか否かを判断する。評価値が悪化した場合（ステップＳ３１におけるＹｅｓ）、入力次元追加部６０は、次元数を増加させるように学習データの値を追加する（ステップＳ３２）。さらに、入力次元追加部６０は、ニューラルネットワークの入力層の次元数を増加させるようにニューラルネットワークの構造を変更する（ステップＳ３３）。
【０１０９】
一方、評価値が悪化していない場合（ステップＳ３１におけるＮｏ）、データの変更等は行われずにステップＳ１７からの処理が行われる。以降、集約部５０が学習処理の終了条件を判断して活性化関数を線形関数に置き換えるステップＳ１７およびステップＳ１８の処理は、図１４に例示する処理と同様である。
【０１１０】
以上のように、本実施形態では、入力次元追加部６０が、線形化量が変更されたあとで評価値が悪化した場合、次元数を増加させるように学習データの値を追加し、ニューラルネットワークの入力層の次元数を増加させるようにニューラルネットワークの構造を変更する。よって、第一の実施形態または第二の実施形態の効果に加え、線形分離可能な範囲を増やすことが可能になる。
【０１１１】
実施形態４．
次に、本発明によるニューラルネットワーク学習装置の第四の実施形態を説明する。上記実施形態では、活性化関数を非線形関数から線形関数に近似するように線形化量を増加または減少させる方法を説明した。本実施形態では、予め線形関数に近似可能な値に線形化量を設定し、線形性の有無を判定しながら学習を行う方法を説明する。
【０１１２】
図２１は、本発明によるニューラルネットワーク学習装置の第四の実施形態の構成例を示すブロック図である。本実施形態のニューラルネットワーク学習装置４００は、学習データ記憶部１０と、テストデータ記憶部１２と、学習データ決定部２０と、テストデータ決定部２２と、学習部３２と、線形化量決定部４４と、集約部５０とを備えている。すなわち、本実施形態のニューラルネットワーク学習装置４００は、第二の実施形態のニューラルネットワーク学習装置２００と比較して、線形化量決定部４２の代わりに線形化量決定部４４を備えている点において異なる。なお、本実施形態のニューラルネットワーク学習装置４００が、入力次元追加部６０を備えていていてもよい。
【０１１３】
線形化量決定部４４は、学習部３２による学習が行われる前に、活性化関数を線形関数に近似可能な値に線形化量を設定する。例えば、活性化関数として、上記の式３に示すＳｃａｌｉｎｇ  Ｔａｎｈが用いられる場合、線形化量決定部４４は、γを非常に大きな値（例えば、γ＝１０００）に設定する。このように設定することで、学習の初期状態で活性化関数を線形関数と見なして学習処理を行うことができる。
【０１１４】
以降、第二の実施形態等と同様の学習サイクル（例えば、図１７に例示するステップＳ１１からステップＳ１５およびステップＳ２１からステップＳ２４の処理）を複数回実行する。
【０１１５】
線形化量決定部４４は、判定精度が線形性を表わす所定の基準を満たさないと判定した場合、活性化関数が非線形関数を表わすように線形化量を変更する。例えば、活性化関数として、上記の式３に示すＳｃａｌｉｎｇ  Ｔａｎｈが用いられる場合、線形化量決定部４４は、γを１に戻すように変更する。一方、線形化量決定部４４は、判定精度が線形性を表わす所定の基準を満たすと判定した場合、線形化量を変更せずに以降の学習処理を継続させる。線形性を表わす基準の設定は任意であり、線形化量決定部４４は、例えば、判定精度が予め定めた目標精度に達したか否かで線形性を表わすか否か判定してもよい。
【０１１６】
このように、線形化量決定部４４がパラメータである線形化量を変更するだけで、モデルを変更せずに線形状態と非線形状態とを切り替えることが可能になる。
【０１１７】
学習データ決定部２０と、テストデータ決定部２２と、学習部３２と、線形化量決定部４４と、集約部５０とは、プログラム（ニューラルネットワーク学習プログラム）に従って動作するコンピュータのプロセッサによって実現される。
【０１１８】
次に、本実施形態のニューラルネットワーク学習装置の動作を説明する。図２２は、本実施形態のニューラルネットワーク学習装置の動作例を示すフローチャートである。まず、線形化量決定部４４は、学習処理が行われる前に、活性化関数を線形関数に近似可能な値に線形化量を設定する（ステップＳ５１）。以降、図１７に例示するステップＳ１１からステップＳ１５までの処理、および、ステップＳ２１からステップＳ２４の処理と同様のニューラルネットワークの学習処理および判定精度の算出処理が行われる。
【０１１９】
線形化量決定部４４は、判定精度が線形性を表わす所定の基準を満たすか否か（すなわち、線形性を有するか否か）判断する（ステップＳ５２）。基準を満たしていない（すなわち、線形性を有さない）と判断した場合（ステップＳ５２におけるＮｏ）、線形化量決定部４４は、活性化関数が非線形関数を表わすように線形化量を変更する（ステップＳ５３）。一方、基準を満たしている（すなわち、線形性を有する）と判断した場合（ステップＳ５２におけるＹｅｓ）、線形化量を維持したまま、ステップＳ１７以降の処理が行われる。
【０１２０】
以上のように、本実施形態では、線形化量決定部４４が、学習部３２による学習の開始前に、活性化関数を線形関数に近似可能な値に線形化量を設定する。そして、学習部３２による学習の結果、判定精度が線形性を表わす所定の基準を満たさないと判定した場合、活性化関数が非線形関数を表わすように線形化量を変更し、上記基準を満たすと判定した場合、線形化量を維持したまま学習部３２による学習を継続させる。よって、上記実施形態の効果に加え、ニューラルネットワークのモデルを変更することなく、線形状態と非線形状態とを切り替えることが可能になる。
【０１２１】
実施形態５．
次に、本発明によるニューラルネットワーク学習装置の第五の実施形態を説明する。第四の実施形態では、線形化量決定部４４が、判定精度が線形性を表わす所定の基準を満たすと判定した場合、線形化量を維持したまま学習部３２による学習を継続させる場合について説明した。本実施形態では、第四の実施形態において、線形性を表わす所定の基準を満たすと判定された場合、モデルを再構築する方法を説明する。
【０１２２】
図２３は、本発明によるニューラルネットワーク学習装置の第五の実施形態の構成例を示すブロック図である。本実施形態のニューラルネットワーク学習装置５００は、学習データ記憶部１０と、テストデータ記憶部１２と、学習データ決定部２０と、テストデータ決定部２２と、学習部３４と、線形化量決定部４４と、集約部５０と、モデル再構築部７０とを備えている。すなわち、本実施形態のニューラルネットワーク学習装置５００は、第四の実施形態のニューラルネットワーク学習装置４００と比較して、学習部３２の代わりに学習部３４を備え、モデル再構築部７０を更に備えている点において異なる。なお、本実施形態のニューラルネットワーク学習装置５００が、入力次元追加部６０を備えていていてもよい。
【０１２３】
モデル再構築部７０は、線形化量決定部４４によって、線形性を表わす所定の基準を満たすと判定された場合、学習中のニューラルネットワークから中間層をすべて削除し、入力層と出力層とを線形関数を表わす活性化関数で接続するモデルへ再構築する。モデル再構築部７０は、例えば、図３４に例示するニューラルネットワークを図３２に例示するニューラルネットワークに再構築する。以降、第二の実施形態等と同様の学習サイクル（例えば、図１７に例示するステップＳ１１からステップＳ１５およびステップＳ２１からステップＳ２４の処理）を実行する。
【０１２４】
図２４は、ニューラルネットワークを再構築する方法の例を示す説明図である。図２４に例示するように、ネットワーク構造を定義するmakelink()関数と、中間層の活性化関数を定義するforward() 関数とを含むモデル定義がされているとする。図２４に例示するモデル定義において、リンク構造は、link(入力数，出力数)で表されるものとし、リンク構造内には重み値が含まれる。また、出力列は、一般化Ｓｃａｌｉｎｇ  Ｔａｎｈを表わすgstanh(入力列，リンク構造，一般化Ｓｃａｌｉｎｇ  Ｔａｎｈにおけるγ)、または、線形関数を表わすlinear(入力列，リンク構造)で表されるものとする。
【０１２５】
例えば、図３４に例示する構造を図３２に例示する構造に置き換える場合、モデル再構築部７０は、図２４に例示するモデル定義Ｄ１からモデル定義Ｄ２へモデル定義を書き換えることで、中間層の構造に依らず、機械的にモデルを再構築してもよい。
【０１２６】
図２５は、ニューラルネットワークを再構築する方法の他の例を示す説明図である。一般に、出力数と入力数が同じになるネットワークが出力に追加されて処理される。図２４に示す例では、中間層の活性化関数をすべて線形関数に置き換える方法が使用されたが、図２５に示す例では、最終段のｓｏｆｔｍａｘ関数を残す方法が使用されている。ここでは、出力列は、ｓｏｆｔｍａｘ関数を表わすsoftmax(入力列，リンク構造) で表されるものとする。
【０１２７】
例えば、図３４に例示する構造を図３２に例示する構造に置き換える場合、モデル再構築部７０は、図２５に例示するモデル定義Ｄ３からモデル定義Ｄ４へモデル定義を書き換えることで、中間層の構造に依らず、機械的にモデルを再構築してもよい。
【０１２８】
このように、学習部３２が、線形関数を表わす活性化関数で接続されたニューラルネットワークを用いて学習を行うため、層間の重みＷは、学習により算出される。よって、積和計算による丸め誤差が生じすること抑制できるため、よりニューラルネットワークの精度を向上させることが可能になる。
【０１２９】
学習データ決定部２０と、テストデータ決定部２２と、学習部３２と、線形化量決定部４４と、集約部５０とは、モデル再構築部７０とは、プログラム（ニューラルネットワーク学習プログラム）に従って動作するコンピュータのプロセッサによって実現される。
【０１３０】
次に、本実施形態のニューラルネットワーク学習装置の動作を説明する。図２６は、本実施形態のニューラルネットワーク学習装置の動作例を示すフローチャートである。活性化関数を線形関数に近似可能な値に線形化量を設定してニューラルネットワークを学習し、線形性を判断するまでの処理は、図２２に例示するステップＳ５１からステップＳ５３までの処理と同様である。ただし、ステップＳ５２におけるＹｅｓ以降の処理が異なる。
【０１３１】
すなわち、判定精度が線形性を表わす所定の基準を満たすと判断された場合（ステップＳ５２におけるＹｅｓ）、モデル再構築部７０は、学習中のニューラルネットワークから中間層をすべて削除し、入力層と出力層とを線形関数を表わす活性化関数で接続するモデルへ再構築する（ステップＳ６１）。以降、再構築されたモデルを用いてステップＳ１１以降の処理を繰り返すことによりニューラルネットワークを学習する。
【０１３２】
以上のように、本実施形態では、判定精度が線形性を表わす所定の基準を満たすと判断された場合、モデル再構築部７０が、学習中のニューラルネットワークから中間層をすべて削除し、入力層と出力層とを線形関数を表わす活性化関数で接続するモデルへ再構築する。このように、再構築されたモデルを用いて学習部３２が学習を行うため、ニューラルネットワークの精度を向上させることが可能になる。
【０１３３】
実施形態６．
次に、本発明によるニューラルネットワーク学習装置の第六の実施形態を説明する。第五の実施形態では、判定精度が線形性を表わす所定の基準を満たすと判断された場合にモデルを再構築する方法を説明した。本実施形態では、第五の実施形態において、線形性を表わす所定の基準を満たすと判定された場合に、線形性を有する部分と非線形性が残る部分とを特定してモデルを再構成する方法を説明する。
【０１３４】
図２７は、本発明によるニューラルネットワーク学習装置の第六の実施形態の構成例を示すブロック図である。本実施形態のニューラルネットワーク学習装置６００は、学習データ記憶部１０と、テストデータ記憶部１２と、第一重み記憶部１４と、第二重み記憶部１６と、学習データ決定部２０と、テストデータ決定部２２と、学習部３４と、線形化量決定部４４と、集約部５０と、線形・非線形分離再構成部７２とを備えている。
【０１３５】
すなわち、本実施形態のニューラルネットワーク学習装置６００は、第五の実施形態のニューラルネットワーク学習装置５００と比較して、モデル再構築部７０の代わりに線形・非線形分離再構成部７２を備え、第一重み記憶部１４および第二重み記憶部１６をさらに備えている点において異なる。なお、本実施形態のニューラルネットワーク学習装置６００が、入力次元追加部６０を備えていていてもよい。また、第一重み記憶部１４および第二重み記憶部１６が、同一の記憶装置で実現されていてもよい。
【０１３６】
本実施形態では、線形化量決定部４４によって、線形性を表わす所定の基準を満たすと判定された場合でも、学習部３４は、学習処理を継続する。線形・非線形分離再構成部７２は、学習部３４による学習が完了すると、線形性を表わす所定の基準を満たすと判定された場合、学習されたニューラルネットワークの重み（以下、第一重みと記す。）を第一重み記憶部１４に保存する。
【０１３７】
その後、学習部３４および線形化量決定部４４は、第二の実施形態の学習部３２および線形化量決定部４２と同様に、判定精度に基づいて線形化量γを増加させながらニューラルネットワークを学習する。そして、線形化量決定部４４は、線形化量γが十分な大きさ（例えば、元の１０００倍程度）になったときに学習されたニューラルネットワークの重み（以下、第二重みと記す。）を第二重み記憶部１６に保存する。
【０１３８】
線形・非線形分離再構成部７２は、第一重みと第二重みとの差分に基づいて、非線形性が残る入力を特定し、線形性を有する部分と非線形性を有する部分とに分離したニューラルネットワークを再構成する。具体的には、線形・非線形分離再構成部７２は、第一重みと第二重みで対応する層の重みの差異が予め定めた基準よりも小さい層を線形性を有する層として削除するようにニューラルネットワークを構成する。
【０１３９】
図２８は、ニューラルネットワークを再構成する処理の例を示す説明図である。例えば、図３４に例示する構造が、図２８に例示するモデル定義Ｄ５のように定義されているものとする。また、第一重み記憶部１４に記憶された重み（第一重み）の行列を、Ｍ．Ｗ１〜Ｍ．Ｗ５とし、第二重み記憶部１６に記憶された重み（第二重み）の行列を、Ｎ．Ｗ１〜Ｎ．Ｗ５とする。
【０１４０】
線形・非線形分離再構成部７２は、層ごとの重みの差異を算出して、ニューラルネットワークを再構成するか否か判断する。線形・非線形分離再構成部７２は、層ごとの重みの差を算出してもよく、層ごとの重みの商を算出してもよい。具体的には、線形・非線形分離再構成部７２は、（Ｎ．Ｗ１−Ｍ．Ｗ１），…，（Ｎ．Ｗ５−Ｍ．Ｗ５）、または、（Ｎ．Ｗ１／Ｍ．Ｗ１），…，（Ｎ．Ｗ５／Ｍ．Ｗ５）を算出してもよい。算出された差が０の場合、または、算出された商が１の場合、その重みに対応する層は精度の向上に貢献しないと判断し、線形・非線形分離再構成部７２は、その層を削除すると判定する。
【０１４１】
そして、線形・非線形分離再構成部７２は、削除すると判定された層の数を全層数から削除する。例えば、（Ｎ．Ｗ１−Ｍ．Ｗ１）＝０、または、（Ｎ．Ｗ１／Ｍ．Ｗ１）＝１を満たすが、それ以外の層は上記条件を満たさない場合、線形・非線形分離再構成部７２は、全層から一層分削除する。例えば、図２８に例示するモデル定義Ｄ５がされていた場合、線形・非線形分離再構成部７２は、モデル定義Ｄ６のようにニューラルネットワークの構造を再構成する。
【０１４２】
学習データ決定部２０と、テストデータ決定部２２と、学習部３２と、線形化量決定部４４と、集約部５０は、線形・非線形分離再構成部７２とは、プログラム（ニューラルネットワーク学習プログラム）に従って動作するコンピュータのプロセッサによって実現される。
【０１４３】
次に、本実施形態のニューラルネットワーク学習装置の動作を説明する。図２９は、本実施形態のニューラルネットワーク学習装置の動作例を示すフローチャートである。活性化関数を線形関数に近似可能な値に線形化量を設定してニューラルネットワークを学習し、線形性を判断するまでの処理は、図２２に例示するステップＳ５１からステップＳ５３までの処理と同様である。ただし、ステップＳ５２におけるＹｅｓ以降の処理が異なる。
【０１４４】
すなわち、判定精度が線形性を表わす所定の基準を満たすと判断された場合（ステップＳ５２におけるＹｅｓ）、線形・非線形分離再構成部７２は、学習部３４による学習の完了時に、学習されたニューラルネットワークの重みを第一重み記憶部１４に保存すると判断し（ステップＳ７１）、終了条件満たすまで学習処理を繰り返す（ステップＳ１７におけるＮｏ）。
【０１４５】
終了条件を満たすと判断された場合（ステップＳ１７におけるＹｅｓ）、線形・非線形分離再構成部７２は、学習されたニューラルネットワークの重み（第一重み）を第一重み記憶部１４に保存する（ステップＳ７２）。さらに、学習部３４は、第二の実施形態で示すように、判定精度に基づいて線形化量γを増加させながらニューラルネットワークを学習する図１７に例示するステップＳ１００の処理を行う。そして、線形化量決定部４４は、学習されたニューラルネットワークの重み（第二重み）を第二重み記憶部１６に保存する（ステップＳ７３）。
【０１４６】
線形・非線形分離再構成部７２は、第一重みと第二重みとの差異がないか否か判断する（ステップＳ７４）。差異がないと判断された場合（ステップＳ７４におけるＹｅｓ）、再線形・非線形分離再構成部７２は、ニューラルネットワークを再構成する（ステップＳ７５）。一方、差異があると判断された場合（ステップＳ７４におけるＮｏ）、処理を終了する。
【０１４７】
以上のように、本実施形態では、線形化量決定部４４が、学習部３４による学習の開始前に、活性化関数を線形関数に近似可能な値に線形化量を設定し、学習の結果、判定精度が線形性を表わす所定の基準を満たすと判断した場合第一の重みを保存する。さらに、学習部３４は、活性化関数が非線形関数を示す値に線形化量を設定して学習し、学習の結果を第二の重みとして保存する。そして、線形・非線形分離再構成部７２が、第一重みと第二重みで対応する重みの差異が予め定めた基準よりも小さい層を線形性を有する層として削除するようにニューラルネットワークを再構成する。よって、精度を向上させながら計算量を削減するようにニューラルネットワークを学習できる。
【０１４８】
次に、本発明の概要を説明する。図３０は、本発明によるニューラルネットワーク学習装置の概要を示すブロック図である。本発明によるニューラルネットワーク学習装置８０は、ニューラルネットワークを学習する学習部８１（例えば、学習部３０，３２，３４）と、ニューラルネットワークで用いられる活性化関数に含まれるパラメータであって、増加または減少させることによりその活性化関数を線形関数に近づけるパラメータである線形化量（例えば、線形化量γ）を決定する線形化量決定部８２（例えば、線形化量決定部４０，４２，４４）と、線形化量を増加または減少させることにより線形関数に収束すると判断される活性化関数をその線形関数に置き換えて、置き換えた線形関数を用いる層間の重みを集約する集約部８３（例えば、集約部５０）とを備えている。
【０１４９】
学習部８１は、ニューラルネットワークの学習において、そのニューラルネットワークによる出力に基づく評価値（例えば、誤差、評価精度、出力回数など）を算出し、線形化量決定部８２は、評価値が予め定められた基準を満たす場合に、線形化量を変化させる。
【０１５０】
そのような構成により、計算量を削減するようにニューラルネットワークを学習できる。
【０１５１】
具体的には、学習部８１は、ニューラルネットワークに、正解ラベル付のテストデータを入力した際の判定精度を算出してもよい。そして、線形化量決定部８２は、判定精度の増加に応じて線形化量を増加または減少させてもよい。
【０１５２】
また、線形化量決定部８２は、学習部による学習の開始前に、活性化関数を線形関数に近似可能な値に線形化量を設定し、学習の結果、判定精度が線形性を表わす所定の基準を満たさないと判定した場合、活性化関数が非線形関数を表わすように線形化量を変更し、基準を満たすと判定した場合、線形化量を維持したまま学習部による学習を継続させてもよい。
【０１５３】
また、ニューラルネットワーク学習装置８０は、判定精度が線形性を表わす所定の基準を満たすと判断された場合、学習中のニューラルネットワークから中間層をすべて削除し、入力層と出力層とを線形関数を表わす活性化関数で接続するモデルへ再構築するモデル再構築部（例えば、モデル再構築部７０）を備えていてもよい。そして、学習部８１は、再構築されたモデルを用いてニューラルネットワークを学習してもよい。
【０１５４】
一方、学習部８１は、ニューラルネットワークの学習において、学習データとそのニューラルネットワークによる出力との誤差を算出してもよい。そして、線形化量決定部８２は、誤差の減少に応じて線形化量を増加または減少させてもよい。
【０１５５】
また、ニューラルネットワーク学習装置８０は、線形化量が変更されたあとで評価値が悪化した場合、次元数を増加させるように学習データの値を追加し、ニューラルネットワークの入力層の次元数を増加させるようにニューラルネットワークの構造を変更する入力次元追加部（例えば、入力次元追加部６０）を備えていてもよい。
【０１５６】
図３１は、少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。コンピュータ１０００は、プロセッサ１００１、主記憶装置１００２、補助記憶装置１００３、インタフェース１００４を備える。
【０１５７】
上述のニューラルネットワーク学習装置は、コンピュータ１０００に実装される。そして、上述した各処理部の動作は、プログラム（ニューラルネットワーク学習プログラム）の形式で補助記憶装置１００３に記憶されている。プロセッサ１００１は、プログラムを補助記憶装置１００３から読み出して主記憶装置１００２に展開し、当該プログラムに従って上記処理を実行する。
【０１５８】
なお、少なくとも１つの実施形態において、補助記憶装置１００３は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、インタフェース１００４を介して接続される磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disc Read-only memory ）、ＤＶＤ−ＲＯＭ（Read-only memory）、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ１０００に配信される場合、配信を受けたコンピュータ１０００が当該プログラムを主記憶装置１００２に展開し、上記処理を実行しても良い。
【０１５９】
また、当該プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、当該プログラムは、前述した機能を補助記憶装置１００３に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【０１６０】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【０１６１】
（付記１）ニューラルネットワークを学習する学習部と、前記ニューラルネットワークで用いられる活性化関数に含まれるパラメータであって、増加または減少させることにより当該活性化関数を線形関数に近づけるパラメータである線形化量を決定する線形化量決定部と、前記線形化量を増加または減少させることにより線形関数に収束すると判断される前記活性化関数を当該線形関数に置き換えて、置き換えた線形関数を用いる層間の重みを集約する集約部とを備え、前記学習部は、前記ニューラルネットワークの学習において、当該ニューラルネットワークによる出力に基づく評価値を算出し、前記線形化量決定部は、前記評価値が予め定められた基準を満たす場合に、前記線形化量を変化させることを特徴とするニューラルネットワーク学習装置。
【０１６２】
（付記２）学習部は、ニューラルネットワークに、正解ラベル付のテストデータを入力した際の判定精度を算出し、線形化量決定部は、前記判定精度の増加に応じて線形化量を増加または減少させる付記１記載のニューラルネットワーク学習装置。
【０１６３】
（付記３）線形化量決定部は、学習部による学習の開始前に、活性化関数を線形関数に近似可能な値に線形化量を設定し、前記学習の結果、判定精度が線形性を表わす所定の基準を満たさないと判定した場合、活性化関数が非線形関数を表わすように線形化量を変更し、前記基準を満たすと判定した場合、線形化量を維持したまま学習部による学習を継続させる付記２記載のニューラルネットワーク学習装置。
【０１６４】
（付記４）判定精度が線形性を表わす所定の基準を満たすと判断された場合、学習中のニューラルネットワークから中間層をすべて削除し、入力層と出力層とを線形関数を表わす活性化関数で接続するモデルへ再構築するモデル再構築部を備え、学習部は、再構築されたモデルを用いてニューラルネットワークを学習する付記３記載のニューラルネットワーク学習装置。
【０１６５】
（付記５）学習部は、ニューラルネットワークの学習において、学習データと当該ニューラルネットワークによる出力との誤差を算出し、線形化量決定部は、前記誤差の減少に応じて線形化量を増加または減少させる付記１記載のニューラルネットワーク学習装置。
【０１６６】
（付記６）線形化量が変更されたあとで評価値が悪化した場合、次元数を増加させるように学習データの値を追加し、ニューラルネットワークの入力層の次元数を増加させるようにニューラルネットワークの構造を変更する入力次元追加部を備えた付記１から付記５のうちのいずれか１つに記載のニューラルネットワーク学習装置。
【０１６７】
（付記７）ニューラルネットワークの構造を再構成する線形・非線形分離再構成部を備え、線形化量決定部は、学習部による学習の開始前に、活性化関数を線形関数に近似可能な値に線形化量を設定し、学習の結果、判定精度が線形性を表わす所定の基準を満たすと判断した場合第一の重みを保存し、学習部は、活性化関数が非線形関数を示す値に線形化量を設定して学習し、学習の結果を第二の重みとして保存し、前記線形・非線形分離再構成部は、前記第一重みと前記第二重みで対応する重みの差異が予め定めた基準よりも小さい層を線形性を有する層として削除するようにニューラルネットワークを再構成する付記１から付記６のうちのいずれか１つに記載のニューラルネットワーク学習装置。
【０１６８】
（付記８）ニューラルネットワークを学習し、前記ニューラルネットワークの学習において、当該ニューラルネットワークによる出力に基づく評価値を算出し、前記ニューラルネットワークで用いられる活性化関数に含まれるパラメータであって、増加または減少させることにより当該活性化関数を線形関数に近づけるパラメータである線形化量を決定し、前記評価値が予め定められた基準を満たす場合に、前記線形化量を変化させ、前記線形化量を増加または減少させることにより線形関数に収束すると判断される前記活性化関数を当該線形関数に置き換えて、置き換えた線形関数を用いる層間の重みを集約することを特徴とするニューラルネットワーク学習方法。
【０１６９】
（付記９）ニューラルネットワークに、正解ラベル付のテストデータを入力した際の判定精度を算出し、前記判定精度の増加に応じて線形化量を増加または減少させる付記８記載のニューラルネットワーク学習方法。
【０１７０】
（付記１０）ニューラルネットワークの学習において、学習データと当該ニューラルネットワークによる出力との誤差を算出し、前記誤差の減少に応じて線形化量を増加または減少させる付記８記載のニューラルネットワーク学習方法。
【０１７１】
（付記１１）コンピュータに、ニューラルネットワークを学習する学習処理、前記ニューラルネットワークで用いられる活性化関数に含まれるパラメータであって、増加または減少させることにより当該活性化関数を線形関数に近づけるパラメータである線形化量を決定する線形化量決定処理、および、前記線形化量を増加または減少させることにより線形関数に収束すると判断される前記活性化関数を当該線形関数に置き換えて、置き換えた線形関数を用いる層間の重みを集約する集約処理を実行させ、前記学習処理で、前記ニューラルネットワークの学習において、当該ニューラルネットワークによる出力に基づく評価値を算出させ、前記線形化量決定処理で、前記評価値が予め定められた基準を満たす場合に、前記線形化量を変化させるためのニューラルネットワーク学習プログラム。
【０１７２】
（付記１２）コンピュータに、学習処理で、ニューラルネットワークに、正解ラベル付のテストデータを入力した際の判定精度を算出させ、線形化量決定処理で、前記判定精度の増加に応じて線形化量を増加または減少させる付記１１記載のニューラルネットワーク学習プログラム。
【０１７３】
（付記１３）コンピュータに、学習処理で、ニューラルネットワークの学習において、学習データと当該ニューラルネットワークによる出力との誤差を算出させ、線形化量決定処理で、前記誤差の減少に応じて線形化量を増加または減少させる付記１１記載のニューラルネットワーク学習プログラム。
【産業上の利用可能性】
【０１７４】
本発明は、ニューラルネットワークを学習するニューラルネットワーク学習装置に好適に適用可能である。例えば、自動車の分野では、計算量を削減できることにより、車載ＥＣＵ（Electronic Control Unit ）の高速化や省電力化や、記憶容量（メモリ容量など）の削減、新規機能の開発の短縮や、重みＷを用いた認証機能検証などが可能になる。【０１７５】
以上、実施形態及び実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【０１７６】
この出願は、２０１８年１２月２８日に出願された日本特許出願２０１８−２４７３３７を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【０１７７】
１０  学習データ記憶部
１２  テストデータ記憶部
１４  第一重み記憶部
１６  第二重み記憶部
２０  学習データ決定部
２２  テストデータ決定部
３０，３２，３４  学習部
４０，４２，４４  線形量決定部
５０  集約部
６０  入力次元追加部
７０  モデル再構築部
７２  線形・非線形分離再構成部
１００，２００，３００，４００，５００，６００  ニューラルネットワーク学習装置
【図１】
2020137090.tif 000015
【図２】
2020137090.tif 000016
【図３】
2020137090.tif 000017
【図４】
2020137090.tif 000018
【図５】
2020137090.tif 000019
【図６】
2020137090.tif 000020
【図７】
2020137090.tif 000021
【図８】
2020137090.tif 000022
【図９】
2020137090.tif 000023
【図１０】
2020137090.tif 000024
【図１１】
2020137090.tif 000025
【図１２】
2020137090.tif 000026
【図１３】
2020137090.tif 000027
【図１４】
2020137090.tif 000028
【図１５】
2020137090.tif 000029
【図１６】
2020137090.tif 000030
【図１７】
2020137090.tif 000031
【図１８】
2020137090.tif 000032
【図１９】
2020137090.tif 000033
【図２０】
2020137090.tif 000034
【図２１】
2020137090.tif 000035
【図２２】
2020137090.tif 000036
【図２３】
2020137090.tif 000037
【図２４】
2020137090.tif 000038
【図２５】
2020137090.tif 000039
【図２６】
2020137090.tif 000040
【図２７】
2020137090.tif 000041
【図２８】
2020137090.tif 000042
【図２９】
2020137090.tif 000043
【図３０】
2020137090.tif 000044
【図３１】
2020137090.tif 000045
【図３２】
2020137090.tif 000046
【図３３】
2020137090.tif 000047
【図３４】
2020137090.tif 000048
【図３５】
2020137090.tif 000049
【図３６】
2020137090.tif 000050
【手続補正書】
【提出日】令和3年6月16日(2021.6.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ニューラルネットワークを学習する学習部と、
前記ニューラルネットワークで用いられる活性化関数に含まれるパラメータであって、増加または減少させることにより当該活性化関数を線形関数に近づけるパラメータである線形化量を決定する線形化量決定部と、
前記線形化量を増加または減少させることにより線形関数に収束すると判断される前記活性化関数を当該線形関数に置き換えて、置き換えた線形関数を用いる層間の重みを集約する集約部とを備え、
前記学習部は、前記ニューラルネットワークの学習において、当該ニューラルネットワークによる出力に基づく評価値を算出し、
前記線形化量決定部は、前記評価値が予め定められた基準を満たす場合に、前記線形化量を変化させる
ことを特徴とするニューラルネットワーク学習装置。
【請求項２】
学習部は、ニューラルネットワークに、正解ラベル付のテストデータを入力した際の判定精度を算出し、
線形化量決定部は、前記判定精度の増加に応じて線形化量を増加または減少させる
請求項１記載のニューラルネットワーク学習装置。
【請求項３】
線形化量決定部は、学習部による学習の開始前に、活性化関数を線形関数に近似可能な値に線形化量を設定し、前記学習の結果、判定精度が線形性を表わす所定の基準を満たさないと判定した場合、活性化関数が非線形関数を表わすように線形化量を変更し、前記基準を満たすと判定した場合、線形化量を維持したまま学習部による学習を継続させる
請求項２記載のニューラルネットワーク学習装置。
【請求項４】
判定精度が線形性を表わす所定の基準を満たすと判断された場合、学習中のニューラルネットワークから中間層をすべて削除し、入力層と出力層とを線形関数を表わす活性化関数で接続するモデルへ再構築するモデル再構築部を備え、
学習部は、再構築されたモデルを用いてニューラルネットワークを学習する
請求項３記載のニューラルネットワーク学習装置。
【請求項５】
学習部は、ニューラルネットワークの学習において、学習データと当該ニューラルネットワークによる出力との誤差を算出し、
線形化量決定部は、前記誤差の減少に応じて線形化量を増加または減少させる
請求項１記載のニューラルネットワーク学習装置。
【請求項６】
線形化量が変更されたあとで評価値が悪化した場合、次元数を増加させるように学習データの値を追加し、ニューラルネットワークの入力層の次元数を増加させるようにニューラルネットワークの構造を変更する入力次元追加部を備えた
請求項１から請求項５のうちのいずれか１項に記載のニューラルネットワーク学習装置。
【請求項７】
ニューラルネットワークの構造を再構成する線形・非線形分離再構成部を備え、
線形化量決定部は、学習部による学習の開始前に、活性化関数を線形関数に近似可能な値に線形化量を設定し、学習の結果、判定精度が線形性を表わす所定の基準を満たすと判断した場合第一の重みを保存し、
学習部は、活性化関数が非線形関数を示す値に線形化量を設定して学習し、学習の結果を第二の重みとして保存し、
前記線形・非線形分離再構成部は、前記第一重みと前記第二重みで対応する重みの差異が予め定めた基準よりも小さい層を線形性を有する層として削除するようにニューラルネットワークを再構成する
請求項１から請求項６のうちのいずれか１項に記載のニューラルネットワーク学習装置。
【請求項８】
ニューラルネットワークを学習し、
前記ニューラルネットワークの学習において、当該ニューラルネットワークによる出力に基づく評価値を算出し、
前記ニューラルネットワークで用いられる活性化関数に含まれるパラメータであって、増加または減少させることにより当該活性化関数を線形関数に近づけるパラメータである線形化量を決定し、
前記評価値が予め定められた基準を満たす場合に、前記線形化量を変化させ、
前記線形化量を増加または減少させることにより線形関数に収束すると判断される前記活性化関数を当該線形関数に置き換えて、置き換えた線形関数を用いる層間の重みを集約する
ことを特徴とするニューラルネットワーク学習方法。
【請求項９】
ニューラルネットワークに、正解ラベル付のテストデータを入力した際の判定精度を算出し、
前記判定精度の増加に応じて線形化量を増加または減少させる
請求項８記載のニューラルネットワーク学習方法。
【請求項１０】
コンピュータに、
ニューラルネットワークを学習する学習処理、
前記ニューラルネットワークで用いられる活性化関数に含まれるパラメータであって、増加または減少させることにより当該活性化関数を線形関数に近づけるパラメータである線形化量を決定する線形化量決定処理、および、
前記線形化量を増加または減少させることにより線形関数に収束すると判断される前記活性化関数を当該線形関数に置き換えて、置き換えた線形関数を用いる層間の重みを集約する集約処理を実行させ、
前記学習処理で、前記ニューラルネットワークの学習において、当該ニューラルネットワークによる出力に基づく評価値を算出させ、
前記線形化量決定処理で、前記評価値が予め定められた基準を満たす場合に、前記線形化量を変化させる
ためのニューラルネットワーク学習プログラム。
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図１７
【補正方法】変更
【補正の内容】
【図１７】
2020137090.tif 000051
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図２２
【補正方法】変更
【補正の内容】
【図２２】
2020137090.tif 000052
【手続補正４】
【補正対象書類名】図面
【補正対象項目名】図２６
【補正方法】変更
【補正の内容】
【図２６】
2020137090.tif 000053
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図２９
【補正方法】変更
【補正の内容】
【図２９】
2020137090.tif 000054
【国際調査報告】
2020137090.tif 000055
2020137090.tif 000056