(57)【特許請求の範囲】
【請求項１】
複数の層を備えるニューラルネットワークであって、第１の層から前記第１の層の次の層である第２の層への出力を分岐させ、前記第２の層をスキップして前記第２の層よりも下流にある第３の層の入力に結合するスキップコネクションを複数含むニューラルネットワークの学習を行う学習部と、
前記学習を行うときに、前記スキップコネクションのうちの少なくとも１つを無効にする結合無効部と、
前記結合無効部により無効にするスキップコネクションを変えて、前記学習部に学習を行わせる学習制御部と、
を備える学習装置。
【請求項２】
前記ニューラルネットワークにおいて、前記スキップコネクションは中間層に設けられる、請求項１記載の学習装置。
【請求項３】
前記結合無効部は、無効にするスキップコネクションをランダムに選択する、請求項１又は２記載の学習装置。
【請求項４】
前記結合無効部は、あらかじめ設定された確率に基づいて、無効にするスキップコネクションを選択する、請求項１から３のいずれか１項記載の学習装置。
【請求項５】
前記結合無効部は、前記スキップコネクションを介して順伝播する出力を０にすることにより、前記スキップコネクションを無効にする、請求項１から４のいずれか１項記載の学習装置。
【請求項６】
前記結合無効部は、前記スキップコネクションを介した逆伝播を遮断することにより、前記スキップコネクションを無効にする、請求項１から５のいずれか１項記載の学習装置。
【請求項７】
複数の層を備えるニューラルネットワークであって、第１の層から前記第１の層の次の層である第２の層への出力を分岐させ、前記第２の層をスキップして前記第２の層よりも下流にある第３の層の入力に結合するスキップコネクションを複数含むニューラルネットワークの学習を行う学習部により学習を行うときに、前記スキップコネクションのうちの少なくとも１つを無効にする結合無効ステップと、
前記結合無効ステップにおいて無効にするスキップコネクションを変えて、前記学習部に学習を行わせる学習制御ステップと、
を備える学習方法。
【請求項８】
複数の層を備えるニューラルネットワークであって、第１の層から前記第１の層の次の層である第２の層への出力を分岐させ、前記第２の層をスキップして前記第２の層よりも下流にある第３の層の入力に結合するスキップコネクションを複数含むニューラルネットワークの学習を行う機能と、
前記学習を行うときに、前記スキップコネクションのうちの少なくとも１つを無効にする機能と、
無効にするスキップコネクションを変えて、前記学習を行う機能と、
をコンピュータに実現させる学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は学習装置、方法及びプログラムに係り、特に深層学習を利用した学習装置、方法及びプログラムに関する。
【背景技術】
【０００２】
近年、画像中の対象物の認識において、深層学習（Deep Learning）、特に、ニューラルネットワーク（Neural Network：ＮＮ）又は畳み込みニューラルネットワーク（Convolutional Neural Network：ＣＮＮ）を利用することが提案されている。深層学習では、層を深くするほど、認識精度が向上すると考えられている。【０００３】
ニューラルネットワークにおける学習では、誤差逆伝播法が用いられる。誤差逆伝播法では、各層の出力と正解との誤差を出力層側から入力層側に向かって逆伝播させ、この誤差から勾配を計算することにより、各層における重みが更新される。深層学習において、単純に層を深くすると、層が深いほど、入力層側に誤差が伝わりづらくなる。このため、勾配が０又は０に近い小さな値となって、各層における重みが更新されなくなるという勾配消失問題が発生し、ニューラルネットワークの性能が悪化する。【０００４】
そこで、ニューラルネットワークにおいて、第１の層からその次の第２の層への出力を分岐させて第２の層をショートカットして、第１の層からの出力を第２の層よりも下流にある第３の層に結合するスキップコネクション（skip connection）を持つモデルが提案されている（非特許文献１及び２）。【０００５】
非特許文献１は、Residual Network（ResNet）に関する文献である。ResNetでは、スキップコネクションを用いて前層の出力を下流側に加算することにより、残差（Residual）を学習するようになっている。【０００６】
非特許文献２は、Dense Convolutional Network（DenseNet）に関する文献である。DenseNetでは、スキップコネクションを用いて前層の出力を下流側に結合させるようになっている。【０００７】
非特許文献１及び２によれば、スキップコネクションを用いて前層の出力を下流側に結合させることにより、層が深くなることによる勾配消失問題を改善することができると考えられる。【０００８】
ところで、ニューラルネットワークにおいて、層が深くなりパラメータの数が増えて、ニューラルネットワークの構造が複雑化すると、学習済みのデータに対しては正解が得られるものの、学習済みのデータ以外の未知のデータに対して適合できない過学習という状態になる場合がある。非特許文献１及び２に記載の発明では、過学習による汎化性能の低下の問題に対応することはできない。【０００９】
この過学習に関する問題に対して、特許文献１及び非特許文献３には、ニューラルネットワークにおける汎化性能を向上させる技術が開示されている。【００１０】
特許文献１には、ＤＲＯＰＯＵＴという手法が開示されている。特許文献１では、学習を行うときに、ランダム（確率的）に特徴検出器（feature detector）を選択して無効にすることにより、汎化性能を上げるアンサンブル学習を行うようになっている。なお、特許文献１における特徴検出器は、ニューラルネットワークにおけるノード、畳み込みニューラルネットワークにおけるフィルタに相当する。【００１１】
非特許文献３では、学習を行うときに、ResNetのResidual Block（ResBlock）における各層から次の層に至る結合をランダムに除去（remove）して、スキップコネクションを維持するようになっている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】米国特許第９４０６０１７号明細書
【非特許文献】
【００１３】
【非特許文献１】He, K. et al.,“Deep Residual Learning for Image Recognition”, 2016, Proceedings of IEEE conference on Computer Vision and Pattern Recognition (CVPR)
【非特許文献２】Huang, G. et al.,“Densely connected convolutional networks”, [online], 2016, arXiv，［平成３０年２月２６日検索］，インターネット＜ＵＲＬ：https://arxiv.org/abs/1608.06993＞
【非特許文献３】Huang, G. et al.,“Deep Networks with Stochastic Depth”, 2016, European Conference on Computer Vision (ECCV), Springer International Publishing
【発明の概要】
【発明が解決しようとする課題】
【００１４】
特許文献１及び非特許文献３では、スキップコネクションではなく、各層からその次の層に至る結合であるメインストリーム（main stream）が無効化又は除去されるようになっている。アンサンブル学習を行うときに、メインストリームの結合が無効化されると、無効化されたメインストリームに結合する層における学習が行われなくなるため、収束性能が低下するという問題がある。【００１５】
本発明はこのような事情に鑑みてなされたもので、学習における収束性能の低下を抑えながら、過学習を防止して汎化性能を向上させることが可能な学習装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記課題を解決するために、本発明の第１の態様に係る学習装置は、複数の層を備えるニューラルネットワークであって、第１の層から第１の層の次の層である第２の層への出力を分岐させ、第２の層をスキップして第２の層よりも下流にある第３の層の入力に結合するスキップコネクションを複数含むニューラルネットワークの学習を行う学習部と、学習を行うときに、スキップコネクションのうちの少なくとも１つを無効にする結合無効部と、結合無効部により無効にするスキップコネクションを変えて、学習部に学習を行わせる学習制御部とを備える。【００１７】
本発明の第２の態様に係る学習装置は、第１の態様において、ニューラルネットワークにおいて、スキップコネクションは中間層に設けられるようにしたものである。【００１８】
本発明の第３の態様に係る学習装置は、第１又は第２の態様において、結合無効部は、無効にするスキップコネクションをランダムに選択するようにしたものである。【００１９】
本発明の第４の態様に係る学習装置は、第１から第３の態様のいずれかにおいて、結合無効部は、あらかじめ設定された確率に基づいて、無効にするスキップコネクションを選択するようにしたものである。【００２０】
本発明の第５の態様に係る学習装置は、第１から第４の態様のいずれかにおいて、結合無効部は、スキップコネクションを介して順伝播する出力を０にすることにより、スキップコネクションを無効にするようにしたものである。【００２１】
本発明の第６の態様に係る学習装置は、第１から第５の態様のいずれかにおいて、結合無効部は、スキップコネクションを介した逆伝播を遮断することにより、スキップコネクションを無効にするようにしたものである。【００２２】
本発明の第７の態様に係る学習方法は、複数の層を備えるニューラルネットワークであって、第１の層から第１の層の次の層である第２の層への出力を分岐させ、第２の層をスキップして第２の層よりも下流にある第３の層の入力に結合するスキップコネクションを複数含むニューラルネットワークの学習を行う学習部により学習を行うときに、スキップコネクションのうちの少なくとも１つを無効にする結合無効ステップと、結合無効ステップにおいて無効にするスキップコネクションを変えて、学習部に学習を行わせる学習制御ステップとを備える。【００２３】
本発明の第８の態様に係る学習プログラムは、複数の層を備えるニューラルネットワークであって、第１の層から第１の層の次の層である第２の層への出力を分岐させ、第２の層をスキップして第２の層よりも下流にある第３の層の入力に結合するスキップコネクションを複数含むニューラルネットワークの学習を行う機能と、学習を行うときに、スキップコネクションのうちの少なくとも１つを無効にする機能と、無効にするスキップコネクションを変えて、学習を行う機能とをコンピュータに実現させる。また、本発明の他の対応に係る学習装置は、プロセッサが、複数の層を備えるニューラルネットワークであって、第１の層から第１の層の次の層である第２の層への出力を分岐させ、第２の層をスキップして第２の層よりも下流にある第３の層の入力に結合するスキップコネクションを複数含むニューラルネットワークの学習を行い、学習を行うときに、スキップコネクションのうちの少なくとも１つを無効にし、無効にするスキップコネクションを変えて、学習を行う学習装置である。
【発明の効果】
【００２４】
本発明によれば、無効にするスキップコネクションを変えて学習を行うことにより、各層の結合の仕方が異なるニューラルネットワークを用いた学習を繰り返し行うことができる。これにより、アンサンブル学習を実現することができるので、ニューラルネットワークの汎化性能を向上させることができる。さらに、本発明によれば、無効化対象をスキップコネクションのみにすることにより、メインストリームの結合は維持されるので、学習の収束性能の低下を抑えることが可能になる。
【図面の簡単な説明】
【００２５】
【図１】図１は、本発明の一実施形態に係る学習装置を示すブロック図である。
【図２】図２は、スキップコネクションについて説明するための図である。
【図３】図３は、本発明の一実施形態に係る判別器におけるニューラルネットワークの構成例を示すブロック図である。
【図４】図４は、本発明の一実施形態に係る学習方法を示すフローチャートである。
【図５】図５は、本発明の一実施形態に係る学習装置を備えた画像認識システムを示すブロック図である。
【図６】図６は、実施例１において用いられる判別器におけるニューラルネットワークの構成例を示すブロック図である。
【図７】図７は、実施例２において用いられる判別器におけるニューラルネットワークの構成例を示すブロック図である。
【発明を実施するための形態】
【００２６】
以下、添付図面に従って本発明に係る学習装置、方法及びプログラムの実施の形態について説明する。
【００２７】
［学習装置］
図１は、本発明の一実施形態に係る学習装置を示すブロック図である。
【００２８】
図１に示すように、本実施形態に係る学習装置１０は、制御部１２、操作部１４、メモリ１６、記録部１８、表示部２０、データ取得部２２、学習部２４及び通信インターフェース（通信Ｉ／Ｆ）２６を備える。
【００２９】
制御部１２は、学習装置１０の各部の動作を制御するＣＰＵ（Central Processing Unit）を含んでいる。制御部１２は、ＣＰＵに加えて、又はＣＰＵの代わりに、ＧＰＵ（Graphics Processing Unit）を備えていてもよい。制御部１２は、バスを介して、学習装置１０の各部との間で制御信号及びデータの送受信が可能となっている。制御部１２は、操作部１４を介してオペレータからの操作入力を受け付け、バスを介してこの操作入力に応じた制御信号を学習装置１０の各部に送信して各部の動作を制御する。
【００３０】
操作部１４は、オペレータからの操作入力を受け付ける入力装置であり、文字入力等のためのキーボード、表示部２０に表示されるポインタ及びアイコン等を操作するためのポインティングデバイス（例えば、マウス、トラックボール等）を含んでいる。なお、操作部１４としては、キーボード及びポインティングデバイスに代えて、又は、キーボード及びポインティングデバイスに加えて、表示部２０の表面にタッチパネルを設けてもよい。
【００３１】
メモリ１６は、制御部１２等により行われる各種演算のための作業領域として使用されるＲＡＭ（Random Access Memory）、及び表示部２０に出力される画像データを一時記憶するため領域として使用されるＶＲＡＭ（Video Random Access Memory）を含んでいる。
【００３２】
記録部１８は、制御部１２が使用する制御プログラム、及び学習装置１０から受信したデータ等を格納するストレージデバイスである。記録部１８としては、例えば、ＨＤＤ（Hard Disk Drive）等の磁気ディスクを含む装置、ｅＭＭＣ（embedded Multi Media Card）、ＳＳＤ（Solid State Drive）等のフラッシュメモリを含む装置等を用いることができる。
【００３３】
表示部２０は、画像を表示するための装置である。表示部２０としては、例えば、液晶モニタを用いることができる。
【００３４】
通信Ｉ／Ｆ２６は、ネットワークを介して、ほかの装置との間で通信を行うための手段であり、通信の方法に応じて送受信するデータの変換処理を行う。学習装置１０とほかの装置との間のデータの送受信方法としては、有線通信又は無線通信（例えば、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、インターネット接続等）を用いることができる。
【００３５】
データ取得部２２は、通信Ｉ／Ｆ２６を介して、学習用データセットＴＤ１を取得する。
【００３６】
学習部２４は、データ取得部２２により取得した学習用データセットＴＤ１を用いて判別器３０に学習を行わせる。ここで、判別器３０が画像中の被写体を認識するための画像認識エンジンの場合には、学習用データセットＴＤ１は、例えば、画像を入力とし、画像に写っている被写体の名称、種類又は性質を出力（正解データ）とする教師あり学習用のデータセットを用いることができる。
【００３７】
判別器３０は、例えば、畳み込みニューラルネットワークを用いて構成されており、この畳み込みニューラルネットワークには、スキップコネクションが含まれている。図２は、スキップコネクションについて説明するための図である。
【００３８】
図２に示すニューラルネットワークでは、上流側から下流側に向かって、層Ｌ１からＬ５が順番に示されている。各層Ｌ１からＬ５に対する入力をそれぞれｘ０からｘ４とする。
【００３９】
スキップコネクションＳＣとは、第１の層から第１の層の次の層である第２の層への出力を分岐させ、第２の層をスキップして第２の層よりも下流にある第３の層の入力に結合する結合、すなわち、１つ以上先の層への結合をいう。
【００４０】
以下の説明では、各層間の結合のうち、スキップコネクション以外の結合ＭＳをメインストリームと呼ぶこととする。
【００４１】
図３は、本発明の一実施形態に係る判別器におけるニューラルネットワークの構成例を示すブロック図である。
【００４２】
図３は、本発明をDense Convolutional Network（DenseNet）に適用した例を示している。DenseNetは、スキップコネクションを有し、結合箇所でデータの結合（連結）を行う。
【００４３】
図３では、判別器３０は、画像を入力とし、その画像に写っている被写体が何であるかを認識し、予測として出力する画像認識エンジンである。
【００４４】
図３に示す例では、白丸１つ、黒丸４つのセットをデンスブロック（Dense Block）として定義する。図３には、Dense Blockが３つ示されている。
【００４５】
図３における白丸はDense Blockの入力層を示しており、黒丸はバッチ正規化処理（Batch Normalization）→活性化関数（rectified linear unit：ＲｅＬＵ）→畳み込み（Convolution）の一連の処理を行う層を示している。以下の説明では、黒丸をDense Unitと呼ぶこととする。
【００４６】
ここで、バッチ正規化処理とは、勾配消失を防止するための処理であり、バッチ学習におけるバッチの各要素の値を、バッチ内における平均及び分散を用いて正規化する処理である。バッチ正規化処理については、例えば、Ioffe, S. et al.,“Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift”, 2015, International Conference on Machine Learning（ICML）に記載されている。
【００４７】
また、ＲｅＬＵは、入力信号の総和がどのように活性化するかを決定する役割を持ち、次の層に渡す値を整える。ＲｅＬＵについては、Glorot, X. et al.,“Deep Sparse Rectifier Neural Networks”, 2011, Proceedings of the Fourteenth International Conference on Artificial Intelligence and Statistics（AISTATS）に記載されている。
【００４８】
図３における各矢印は、各層間の結合（コネクション）を表す。曲線矢印は、スキップコネクションを示している。図３に示すように、本実施形態では、スキップコネクションは、入力層及び出力層以外の層である中間層に設けられている。なお、本実施形態では、各層（白丸及び黒丸）から伸びるスキップコネクションが黒丸間のメインストリームの結合のすべてに結合するように構成されているが、本実施形態はこれに限定されるものではない。例えば、スキップコネクションが結合しないメインストリームがあってもよい。
【００４９】
Dense Unitに向かう矢印が複数の場合（スキップコネクションの入力がある場合）、メインストリームからの入力と、スキップコネクションから入力されるデータが結合される。本実施形態では、データの結合の方法としては、例えば、メインストリームからの入力とスキップコネクションからの入力を演算（例えば、加算）により結合するようにしてもよい。また、深層学習フレームワークテンソルフロー（TensorFlow（登録商標））において、Channel, Height, Widthの順に並んだ数値データの末尾に、これと同じ順に並んだデータを連結させる方法を採用してもよい。なお、データの連結の順序及び方法については、上記に限定されるものではない。データの連結の順序及び方法については、学習時と推論時に固定されていれば、どのような方法を採用してもよい。
【００５０】
［学習方法］
以下に、ニューラルネットワークの学習を行うときの動作について、図４を参照して説明する。以下の動作は、バッチごとに行われる。図４は、本発明の一実施形態に係る学習方法を示すフローチャートである。
【００５１】
まず、学習部２４の結合無効部３２は、無効化対象のスキップコネクションを選択し（ステップＳ１０）、選択したスキップコネクションを無効化する（ステップＳ１２）。ステップＳ１０及びＳ１２を結合無効ステップという。
【００５２】
次に、学習制御部３４は、スキップコネクションを無効化した状態で、判別器３０におけるニューラルネットワークの学習を行う（ステップＳ１４）。そして、学習制御部３４は、無効化対象のスキップコネクションを変えて、判別器３０に繰り返し学習を行わせる（ステップＳ１６のＮｏ：学習制御ステップ）。ステップＳ１４及びＳ１６を学習制御ステップという。
【００５３】
ステップＳ１０では、ニューラルネットワークに含まれるDense Unitごとに（１）及び（２）の処理を行う。
【００５４】
（１）まず、スキップコネクションをそれぞれあらかじめ定められた確率（例えば、２０％の確率）で選択する。
【００５５】
（２）次に、（１）で選択されたスキップコネクションがある場合に、選択されたスキップコネクションの中から無効化対象のスキップコネクションを１つ選択する。（２）では、スキップした層の数が多いスキップコネクション、又はスキップした層の数が少ないスキップコネクションを優先して選択するようにしてもよい。すなわち、スキップした層の数が多いスキップコネクション、又はスキップした層の数が少ないスキップコネクションほど、無効化対象として選択される確率が高くなるようにしてもよい。例えば、深い層であるほど、勾配消失が起こりやすいことを考慮して、深い層であるほど、スキップした層の数が多いスキップコネクションが無効化対象として選択される確率を低くして、スキップした層の数が多いスキップコネクションを学習時に残すようにしてもよい。また、無効化対象のスキップコネクションをランダムに、同じ確率で選択してもよい。
【００５６】
これらの処理により、各Dense Unitにおいて、無効化対象のスキップコネクションが０又は１つ選択される。
【００５７】
本実施形態では、各学習のときに、少なくとも１つのスキップコネクションを無効化する。なお、繰り返し学習のうちの１回の学習については、スキップコネクションの無効化を行わずに、学習を行うようにしてもよい。
【００５８】
ステップＳ１２におけるスキップコネクションの無効化処理は、（Ａ）及び（Ｂ）により行われる。
【００５９】
（Ａ）損失を計算するための順伝播を行うときには、無効化対象のスキップコネクションを介して伝播してきたデータの値を全て０として結合させる。
【００６０】
（Ｂ）誤差逆伝播時には、無効化対象のスキップコネクションに対しては誤差を伝播しないか、あるいは勾配０を伝播する。これにより、無効化対象として選択されたスキップコネクションを介したデータの伝播が遮断されて、スキップコネクションが無効化される。
【００６１】
ステップＳ１６では、スキップコネクションの無効化のパターンを変えて、判別器３０の学習が繰り返し行われる。そして、所定の無効化のパターンのすべてについて、学習が終了すると（ステップＳ１６のＹｅｓ）、判別器３０のニューラルネットワークのすべてが有効化された学習済みのニューラルネットワークを含んだ判別器３０を得ることができる。なお、本実施形態に係る学習方法では、すべてのスキップコネクションが必ず１回は無効化されるようにしてもよいし、無効化されないスキップコネクションが生じてもよい。
【００６２】
本実施形態によれば、無効にするスキップコネクションを変えて学習を行うことにより、各層の結合の仕方が異なるニューラルネットワークを用いた学習を繰り返し行うことができる。これにより、アンサンブル学習を実現することができるので、ニューラルネットワークの汎化性能を向上させることができる。さらに、本実施形態では、無効化対象がスキップコネクションのみにすることにより、メインストリームの結合は維持される。これにより、学習の収束性能の低下を抑えることが可能になる。
【００６３】
［実施例１：画像分類（Classification）への適用例］
次に、本実施形態の判別器３０を画像認識エンジンに適用した例について説明する。
【００６４】
図５は、本発明の一実施形態に係る学習装置を備えた画像認識システムを示すブロック図である。図６は、実施例１において用いられる判別器におけるニューラルネットワークの構成例を示すブロック図である。
【００６５】
図５に示すように、本実施形態に係る画像認識システム１は、画像認識装置１００及び撮像装置１５０を備えている。
【００６６】
撮像装置１５０は、被写体を撮像するための装置であり、静止画又は動画を撮像する装置である。撮像装置１５０によって撮像された画像データは、画像認識装置１００に入力される。
【００６７】
画像認識装置１００は、学習装置１０において学習が行われた画像認識エンジンである判別器３０を用いて、画像に写っている被写体の認識を行う装置である。そして、画像認識装置１００は、認識した被写体を基準として画像の分類を行う。
【００６８】
画像認識装置１００の判別器３０は、学習装置１０によって学習が行われた最新の判別器３０と置き換えられることにより、更新することが可能となっている。
【００６９】
実施例１では、画像分類に関するデータセット（例えば、ImageNet等）を用いて、画像内に写っている被写体を基準として画像を分類する。実施例１では、入力を画像データ、出力（正解ラベル）を１−ｏｆ−Ｋ表現で表現された被写体とする学習用データセットを用いて、判別器３０の学習を行う。ここで、１−ｏｆ−Ｋ表現とは、ある要素だけが１で、それ以外が０となるベクトル形式の表現であり、one-hot表現と呼ばれる場合もある。
【００７０】
図６に示すように、実施例１に係るニューラルネットワークは、４つのDense Blockが３つのトランジションレイヤー（Transition Layer）でつながれた構造を有している。そして、Dense Block 4からの出力が分類層（Classification）に入力された後、分類層から被写体の名称又は種類を示す予測が出力されるようになっている。
【００７１】
実施例１では、図６に示すニューラルネットワークの各Dense Blockについて、上記の実施形態と同様の学習方法を実行することにより、収束性能の低下を抑えながら、汎化性能の高い、一例で１０００クラスの画像分類を行うための画像認識エンジンを作成することが可能になる。
【００７２】
［実施例２：病変セグメンテーションへの適用例］
実施例２は、内視鏡により撮像した動画を対象とした病変セグメンテーションに、本実施形態に係る学習方法を適用するものである。実施例２では、撮像装置１５０は、内視鏡に設けられる。
【００７３】
図７は、実施例２において用いられる判別器におけるニューラルネットワークの構成例を示すブロック図である。
【００７４】
図７に示すように、実施例２に係るニューラルネットワークは、図６と同様に、４つのDense Blockを３つのTransition Layerでつないだ構造を有している。そして、Dense Block 4からの出力が畳み込み層及び活性化関数（Softmax関数）に順次伝播して、予測が出力されるようになっている。
【００７５】
実施例２では、まず、内視鏡により撮像した動画データに含まれるフレームを静止画データとして取り出し、ニューラルネットワークの入力とする。実施例１では、入力を内視鏡により撮像した動画のフレームである静止画データとし、出力のうちの一方は、入力の静止画データに病変が存在する確率を表すスコアマップ、出力のもう一方は、入力の静止画データに病変が存在しない確率を表すスコアマップとする学習用のデータセットを用いて判別器３０の学習を行う。ここで、入力の静止画データに病変が存在する確率としては、例えば、０から１の範囲の数値であって、１に近いほど、病変の存在確率が高い値を用いることができる。入力の静止画データに病変が存在しない確率としては、例えば、０から１の範囲の数値であって、１に近いほど、病変の存在確率が低い値を用いることができる。
【００７６】
実施例２では、図７に示すニューラルネットワークの各Dense Blockについて、上記の実施形態と同様の学習方法を実行することにより、収束性能の低下を抑えながら、汎化性能の高い、病変のセグメンテーションのための画像認識エンジンを作成することが可能になる。
【００７７】
［実施例３］
実施例３は、３次元画像（例えば、医療画像）を対象とした画像認識に、本実施形態に係る学習方法を適用するものである。実施例３では、撮像装置１５０は、例えば、３次元画像データを撮像するための装置に設けられる。ここで、３次元画像には、ＣＴ（Computed Tomography）又はＭＲＩ（Magnetic Resonance Imaging）等の装置により撮像された被写体の断面画像データであって、その断面に垂直な方向の画像データ群が含まれる。
【００７８】
実施例３においても、図３、図６又は図７に示したようなスキップコネクションを有するニューラルネットワークを使用することが可能である。
【００７９】
例えば、３次元画像データに含まれる被写体（例えば、病変）を基準として画像データの分類を行う場合には、入力を３次元のＣＴ画像とし、出力を病変の有無又は病変の種類とする学習用のデータセットを用いて判別器３０の学習を行う。
【００８０】
また、セグメンテーションを行う場合には、入力を３次元のＣＴ画像とし、出力をＣＴ画像に含まれる被写体が特定の臓器（例えば、肺領域）である確率を表すスコアマップとする学習用のデータセットを用いて判別器３０の学習を行う。
【００８１】
これにより、３次元画像データに対しても、上記の実施形態と同様の学習方法を実行することにより、収束性能の低下を抑えながら、汎化性能の高い画像認識エンジンを作成することが可能になる。
【００８２】
なお、本実施形態では、２次元及び３次元の画像データにおける画像認識について説明したが、本発明はこれらに限定されるものではなく、スキップコネクションを有するＮ次元（Ｎは自然数）のデータの畳み込みを行うための畳み込みニューラルネットワークに適用することが可能である。
【００８３】
また、本実施形態では、判別器３０を画像認識に適用する例について説明したが、本発明はこれに限定されない。例えば、音声認識エンジンに本発明を適用することも可能である。
【００８４】
［プログラムの発明について］
本発明は、コンピュータに上記の処理を実現させるプログラム（学習プログラム）、又は、このようなプログラムを格納した非一時的な記録媒体又はプログラムプロダクトとして実現することも可能である。このようなプログラムをコンピュータに適用することにより、コンピュータの演算手段、記録手段等に、本実施形態に係る学習方法の各ステップに対応する機能を実現させることが可能になる。
【００８５】
各実施形態において、各種の処理を実行する処理部（processing unit）のハードウェア的な構造は、次に示すような各種のプロセッサ（processor）として実現することが可能である。各種のプロセッサには、ソフトウェア（プログラム）を実行して各種の処理部として機能する汎用的なプロセッサであるＣＰＵ（Central Processing Unit）、ＧＰＵ（Graphics Processing Unit）、ＦＰＧＡ（Field Programmable Gate Array）などの製造後に回路構成を変更可能なプロセッサであるプログラマブルロジックデバイス（ＰＬＤ：Programmable Logic Device）、ＡＳＩＣ（Application Specific Integrated Circuit）などの特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路などが含まれる。
【００８６】
１つの処理部は、これら各種のプロセッサのうちの１つで構成されていてもよいし、同種または異種の２つ以上のプロセッサ（例えば、複数のＦＰＧＡ、ＣＰＵとＧＰＵの組み合わせ、あるいはＣＰＵとＦＰＧＡの組み合わせ）で構成されてもよい。また、複数の処理部を１つのプロセッサで構成してもよい。複数の処理部を１つのプロセッサで構成する例としては、第１に、クライアントやサーバなどのコンピュータに代表されるように、１つ以上のＣＰＵとソフトウェアの組合せで１つのプロセッサを構成し、このプロセッサが複数の処理部として機能する形態がある。第２に、システムオンチップ（ＳｏＣ：System  On Chip）などに代表されるように、複数の処理部を含むシステム全体の機能を１つのＩＣ（Integrated Circuit）チップで実現するプロセッサを使用する形態がある。このように、各種の処理部は、ハードウェア的な構造として、上記各種のプロセッサを１つ以上用いて構成される。
【００８７】
さらに、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子などの回路素子を組み合わせた電気回路（circuitry）である。
【符号の説明】
【００８８】
１０  学習装置
１２  制御部
１４  操作部
１６  メモリ
１８  記録部
２０  表示部
２２  データ取得部
２４  学習部
２６  通信Ｉ／Ｆ
３０  判別器
３２  結合無効部
３４  学習制御部
１  画像認識システム
１００  画像認識装置
１５０  撮像装置
Ｓ１０〜Ｓ１６  学習方法の各ステップ
【図１】
0006865889.tif 000002
【図２】
0006865889.tif 000003
【図３】
0006865889.tif 000004
【図４】
0006865889.tif 000005
【図５】
0006865889.tif 000006
【図６】
0006865889.tif 000007
【図７】
0006865889.tif 000008