(57)【要約】【課題】同じクラスに分類される画像だけでなく、見た目等の所定の観点で類似する画像も検索されるようにする。【解決手段】画像検索装置１００は、教師あり学習に用いる学習用の画像データセットに含まれる各画像に付与されている正解ラベルである第１の正解ラベルが付与された画像に所定の観点での類似度に基づく正解ラベルである第２の正解ラベルを付与するラベル付与部１３と、第１及び第２の正解ラベルの一方が付与された画像を用いて分類器１１を学習させる主学習処理を実行する主学習部１４と、第１及び第２の正解ラベルの他方が付与された画像を用いて主学習処理で学習させた分類器１１の学習状態を微調整する微調整部１５と、微調整部１５が微調整した分類器１１を用いてユーザから入力された検索画像に類似する画像を検索する検索部１６と、を備える。【選択図】図１
2020119508.tif 000002
【特許請求の範囲】
【請求項１】
教師あり学習に用いる学習用の画像データセットに含まれる各画像に付与されている正解ラベルである第１の正解ラベルが付与された画像に、所定の観点での類似度に基づく正解ラベルである第２の正解ラベルを付与するラベル付与部と、
前記第１及び第２の正解ラベルの一方が付与された前記画像を用いて分類器を学習させる主学習部と、
前記第１及び第２の正解ラベルの他方が付与された前記画像を用いて、前記主学習部が学習させた前記分類器の学習状態を微調整する微調整部と、
前記微調整部が微調整した前記分類器を用いてユーザから入力された検索画像に類似する画像を検索する検索部と、
を備える画像検索装置。
【請求項２】
前記微調整部は、前記分類器の出力層に近い層のみにおいて、各層間の結びつきの強さを規定する重み係数の更新を行うことにより、前記分類器の学習状態を微調整する、
請求項１に記載の画像検索装置。
【請求項３】
前記微調整部は、
前記学習用の画像データセットから、互いに異なる第１の画像と第２の画像を取得し、
前記第１の画像に付与された正解ラベルと前記第２の画像に付与された正解ラベルとが互いに等しい場合の、前記第１の画像を前記分類器に入力して得られる第１の特徴ベクトルと、前記第２の画像を前記分類器に入力して得られる第２の特徴ベクトルと、の間の距離である第１の距離が、
前記第１の画像に付与された正解ラベルと前記第２の画像に付与された正解ラベルとが互いに異なる場合の、前記第１の画像を前記分類器に入力して得られる第１の特徴ベクトルと、前記第２の画像を前記分類器に入力して得られる第２の特徴ベクトルと、の間の距離である第２の距離よりも、
小さくなるように前記分類器の重み係数の更新を行うことにより、前記分類器の学習状態を微調整する、
請求項２に記載の画像検索装置。
【請求項４】
前記微調整部は、
前記学習用の画像データセットから、第１の画像と、第１の画像に付与された正解ラベルと等しい正解ラベルが付与された第２の画像と、第１の画像に付与された正解ラベルとは異なるラベルが正解ラベルとして付与された第３の画像と、を取得し、
前記第１の画像を前記分類器に入力して得られる第１の特徴ベクトルと、前記第２の画像を前記分類器に入力して得られる第２の特徴ベクトルと、前記第３の画像を前記分類器に入力して得られる第３の特徴ベクトルと、を取得し、
前記第１の特徴ベクトルと前記第２の特徴ベクトルとの間の距離より、前記第１の特徴ベクトルと前記第３の特徴ベクトルとの間の距離の方が大きくなるように、前記分類器の重み係数の更新を行うことにより、前記分類器の学習状態を微調整する、
請求項３に記載の画像検索装置。
【請求項５】
前記ラベル付与部は、前記画像に、前記第２の正解ラベルとして、見た目の類似度に基づく正解ラベルを付与する、
請求項１から４のいずれか１項に記載の画像検索装置。
【請求項６】
前記画像の見た目の特徴量を抽出する特徴量抽出部をさらに備え、
前記ラベル付与部は、前記特徴量抽出部が抽出した特徴量を複数のクラスタにクラスタリングすることにより前記画像に前記第２の正解ラベルを付与する、
請求項５に記載の画像検索装置。
【請求項７】
前記特徴量抽出部は、前記見た目の特徴量として特徴点の配置状態に基づく特徴量を抽出する、
請求項６に記載の画像検索装置。
【請求項８】
前記主学習部が前記分類器を学習させる前に、事前に前記分類器を学習させる事前学習を行う事前学習部をさらに備え、
前記事前学習部は、一般画像認識用のデータセットを用いて前記事前学習を行う、
請求項１から７のいずれか１項に記載の画像検索装置。
【請求項９】
前記主学習部は、前記第２の正解ラベルが付与された前記画像を用いて前記分類器を学習させ、
前記微調整部は、前記第１の正解ラベルが付与された前記画像を用いて、前記主学習部が学習させた前記分類器の学習状態を微調整する、
請求項１から８のいずれか１項に記載の画像検索装置。
【請求項１０】
前記主学習部は、前記第１の正解ラベルが付与された前記画像を用いて前記分類器を学習させ、
前記微調整部は、前記第２の正解ラベルが付与された前記画像を用いて、前記主学習部が学習させた前記分類器の学習状態を微調整する、
請求項１から８のいずれか１項に記載の画像検索装置。
【請求項１１】
教師あり学習に用いる学習用の画像データセットに含まれる各画像に付与されている正解ラベルである第１の正解ラベルが付与された画像に、所定の観点での類似度に基づく正解ラベルである第２の正解ラベルを付与するラベル付与ステップと、
前記第１及び第２の正解ラベルの一方が付与された前記画像を用いて分類器を学習させる主学習ステップと、
前記第１及び第２の正解ラベルの他方が付与された前記画像を用いて、前記主学習ステップで学習させた前記分類器の学習状態を微調整する微調整ステップと、
を備える分類器学習方法。
【請求項１２】
コンピュータに、
教師あり学習に用いる学習用の画像データセットに含まれる各画像に付与されている正解ラベルである第１の正解ラベルが付与された画像に、所定の観点での類似度に基づく正解ラベルである第２の正解ラベルを付与するラベル付与ステップ、
前記第１及び第２の正解ラベルの一方が付与された前記画像を用いて分類器を学習させる主学習ステップ、及び、
前記第１及び第２の正解ラベルの他方が付与された前記画像を用いて、前記主学習ステップで学習させた前記分類器の学習状態を微調整する微調整ステップ、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像検索装置、分類器学習方法及びプログラムに関する。
【背景技術】
【０００２】
畳み込みニューラルネットワーク（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ：ＣＮＮ）等による分類器を用いて画像を所定のクラスに分類する技術が開発されてきている。この技術を使えば、例えばダーモスコープで皮膚疾患の患部を撮影した画像（ダーモスコピー画像）を疾患名が定義されたクラスに分類することにより、その患部の疾患名を推測できるようになる。その際、画像を単に分類するよりも、クラスの類似度に応じてランキングされた表示を行った方が便利な場合が多い。そこで、例えば、非特許文献１には、同じクラス間の距離を小さくし、異なるクラス間の距離を大きくするような特徴量を作成するパラメータの学習方法が開示されている。これにより、同じクラスの画像が上位にランキングされ、異なるクラスの画像は下位にランキングされるような画像検索システムが構築できる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Elad Hoffer, and Nir Ailon、"Deep metric learning using Triplet network"、[online]、平成３０年１２月４日(2018.12.4)、［平成３１年１月８日検索］、インターネット（URL:https://arxiv.org/pdf/1412.6622.pdf）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
非特許文献１に開示された学習方法を、分類器で分類したダーモスコピー画像に適用すれば、同じ疾患名の画像間の距離は小さく、異なる疾患名の画像間の距離は大きくなるようにパラメータが学習される。したがって、対象画像との距離の近い順に検索結果を出力することにより、同じ疾患名の画像が上位にランキングされ、異なる疾患名の画像は下位にランキングされるような画像検索システムを構築することができる。ただし、ダーモスコピー画像では、同じ疾患名だが見た目が違う画像や、逆に、異なる疾患名だが見た目が類似する画像が存在する。したがって、医師がより適切な診断を行うためには、分類器によって同じ疾患名に分類される画像だけでなく、見た目が類似する画像も検索されるようにする必要がある。
【０００５】
本発明は、上記問題を解決するためになされたものであり、同じクラスに分類される画像だけでなく、見た目等の所定の観点で類似する画像も検索されるようにする画像検索装置、分類器学習方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するため、本発明の画像検索装置は、
教師あり学習に用いる学習用の画像データセットに含まれる各画像に付与されている正解ラベルである第１の正解ラベルが付与された画像に、所定の観点での類似度に基づく正解ラベルである第２の正解ラベルを付与するラベル付与部と、
前記第１及び第２の正解ラベルの一方が付与された前記画像を用いて分類器を学習させる主学習部と、
前記第１及び第２の正解ラベルの他方が付与された前記画像を用いて、前記主学習部が学習させた前記分類器の学習状態を微調整する微調整部と、
前記微調整部が微調整した前記分類器を用いてユーザから入力された検索画像に類似する画像を検索する検索部と、
を備える。
【発明の効果】
【０００７】
本発明によれば、同じクラスに分類される画像だけでなく、見た目等の所定の観点で類似する画像も検索されるようにすることができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態１に係る画像検索装置の機能構成を示す図である。
【図２】畳み込みニューラルネットワーク（ＣＮＮ）の構成概要を説明する図である。
【図３】実施形態１に係る事前学習の際のＣＮＮの例を説明する図である。
【図４】実施形態１に係る主学習の際のＣＮＮの例を説明する図である。
【図５】実施形態１に係る微調整以降のＣＮＮの例を説明する図である。
【図６】実施形態１に係る学習処理のフローチャートである。
【図７】実施形態１に係る正解ラベル付与処理のフローチャートである。
【図８】実施形態１に係る微調整処理のフローチャートである。
【図９】実施形態１に係る検索処理のフローチャートである。
【図１０】変形例４に係る微調整処理のフローチャートである。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態に係る画像検索装置等について、図表を参照して説明する。なお、図中同一又は相当部分には同一符号を付す。
【００１０】
（実施形態１）
本発明の実施形態１に係る画像検索装置１００は、学習用の画像データセット（学習用の画像データの集合）を用いて教師あり学習で学習させたＣＮＮ分類器を用いて、ユーザから与えられた画像（検索画像）に類似する画像を、検索用の画像データセット（検索対象となる画像データの集合）の中から検索する。学習用の画像データセットと検索用の画像データセットとは全く別物であってもよいし、学習用（検索用）の画像データセットに含まれる画像データの一部又は全部は、検索用（学習用）の画像データセットに含まれていてもよい。
【００１１】
学習用の画像データセットに含まれる各画像データ（学習用画像データ）には、当該画像データが与えられたときの正解となる答、すなわち、当該画像データが分類器に入力されたときに分類器から出力されるべき出力値が、正解ラベルとして付与されている。通常、正解ラベルは、そのラベルが付与されている画像データの画像に写った被写体を表す名称である。例えば、皮膚疾患の患部の画像の検索を行う画像検索装置１００の場合、学習用画像データは、皮膚疾患の疾患名が判明している患部が写っている画像データであり、学習用画像データのそれぞれには、その画像に写っている患部の疾患名が正解ラベルとして付与されている。また、花の画像の検索を行う画像検索装置１００の場合、学習用画像データは、名称が判明している花が写っている画像データであり、学習用画像データのそれぞれには、その画像に写っている花の名称が正解ラベルとして付与されている。
【００１２】
なお、後述するラベル付与部１３は、学習用画像データを見た目の類似度に基づいてクラスタリングし、学習用画像データのそれぞれが属するクラスタに対応する正解ラベルを当該画像データに付与する。この正解ラベルは、学習用画像データに元々付与されている正解ラベルとは異なる正解ラベルである。したがって、以下、両者を区別するために、学習用画像データに元々付与されている正解ラベルを第１の正解ラベルと呼び、ラベル付与部１３が学習用画像データに付与する正解ラベルを第２の正解ラベルと呼ぶ。
【００１３】
実施形態１に係る画像検索装置１００は、図１に示すように、制御部１０、記憶部２０、画像入力部３１、出力部３２、通信部３３、操作入力部３４、を備える。
【００１４】
制御部１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等で構成され、記憶部２０に記憶されたプログラムを実行することにより、後述する各部（分類器１１、事前学習部１２、ラベル付与部１３、主学習部１４、微調整部１５、検索部１６）の機能を実現する。
【００１５】
記憶部２０は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等で構成され、制御部１０のＣＰＵが実行するプログラム及び必要なデータを記憶する。記憶部２０は、分類器１１の学習に用いる画像データ（学習用画像データ）や、画像検索の対象となる画像データ（検索用画像データ）も記憶する。ただし、画像検索装置１００は、学習用画像データ及び検索用画像データの一部又は全部を通信部３３から取得するようにしてもよい。
【００１６】
画像入力部３１は、学習用画像データ、検索用画像データ又はユーザから与えられる検索する（未知の）画像の画像データを入力するためのデバイスである。制御部１０は、画像入力部３１を介して画像データを取得する。画像入力部３１としては、制御部１０が画像データを取得できるなら、任意のデバイスを使用することができる。例えば、記憶部２０に画像データを記憶させておき、制御部１０が記憶部２０を読み出すことによって画像データを取得する場合は、記憶部２０が画像入力部３１を兼ねることになる。また、制御部１０が通信部３３を介して外部のサーバ等から画像データを取得する場合は、通信部３３が画像入力部３１を兼ねることになる。
【００１７】
出力部３２は、制御部１０が、画像検索結果等を出力するためのデバイスである。例えば、出力部３２は、液晶ディスプレイや有機ＥＬ（Ｅｌｅｃｔｒｏ−Ｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイである。ただし、画像検索装置１００は、出力部３２としてこれらディスプレイを備えてもよいし、外部のディスプレイを接続するためのインタフェースとしての出力部３２を備えてもよい。画像検索装置１００は、インタフェースとしての出力部３２を備える場合は、出力部３２を介して接続した外部のディスプレイに画像検索結果等を表示する。
【００１８】
通信部３３は、外部の他の装置（例えば、画像データのデータベースが格納されているサーバ等）とデータの送受信を行うためのデバイス（ネットワークインタフェース等）である。制御部１０は、通信部３３を介して画像データを取得することができる。
【００１９】
操作入力部３４は、画像検索装置１００に対するユーザの操作入力を受け付けるデバイスであり、例えば、キーボード、マウス、タッチパネル等である。画像検索装置１００は、操作入力部３４を介して、ユーザからの指示等を受け付ける。
【００２０】
次に、制御部１０の機能について説明する。制御部１０は、分類器１１、事前学習部１２、ラベル付与部１３、主学習部１４、微調整部１５、検索部１６の機能を実現する。
【００２１】
分類器１１は、畳み込みニューラルネットワーク（ＣＮＮ）による画像の分類器である。ＣＮＮによる分類器を実現するプログラムを制御部１０が実行することにより、制御部１０は分類器１１として機能する。分類器１１は、画像入力部３１を介して入力画像が入力される入力層と、入力画像の分類結果が出力される出力層と、入力層及び出力層以外の層である中間層と、を有し、入力画像を分類した結果を出力層から出力する。なお、分類器１１を学習させる際には、学習用の画像が入力画像として入力層に入力され、学習された分類器１１を用いて未知の画像を分類する際には、当該未知の画像が入力画像として入力層に入力される。分類器１１の構成の概要については後述する。
【００２２】
事前学習部１２は、主学習部１４が分類器１１のＣＮＮを学習させる前に、事前に分類器１１のＣＮＮを学習させる。このように、主学習部１４による学習の前に、分類器１１のＣＮＮを学習させることを事前学習という。そして、事前学習部１２は、一般画像認識用のデータセット（例えばＩｍａｇｅＮｅｔ）を用いて事前学習を行う。ただし、学習用の画像データセットに含まれる画像データ（例えば、皮膚疾患の名称が正解ラベル（第１の正解ラベル）として付与された、患部の画像データ）を大量に用意できる場合には、この事前学習は不要であり、この場合事前学習部１２も不要である。学習用の画像データセットに含まれる画像データが少ない場合、学習用の画像データセットだけではＣＮＮの学習が十分行えないことになるが、一般画像認識用のデータセット（事前学習用データセット）に含まれる大量の画像データでＣＮＮを事前学習させておくことにより、その後は比較的少量の学習用画像データでも、ＣＮＮの学習を行うことができる。なお、事前学習の際は、事前学習部１２は、予め、分類器１１のＣＮＮの出力層１１８が出力するクラスの数（出力ベクトルの次元数）を、事前学習用データセットで用いるクラスの数（例えば５１２）に合わせる。そして、事前学習部１２は、事前学習用データセットに含まれる事前学習用画像データをＣＮＮの入力層１１１に入力した時に出力層１１８から出力される出力値と、当該事前学習用画像データに付与されている正解ラベルと、の違い（誤差）に基づき、誤差逆伝播法により、分類器１１のＣＮＮ内の重み係数を更新することにより、分類器１１のＣＮＮを事前学習させる。なお、重み係数とはＣＮＮ内の各層間の結びつきの強さを規定する係数である。
【００２３】
ラベル付与部１３は、学習用画像データのそれぞれに、画像の見た目の類似度に基づく正解ラベルである第２の正解ラベルを付与する。具体的には、ラベル付与部１３は、学習用画像データを画像の見た目が反映される特徴量に基づいて（番号を付与した複数のクラスタに）クラスタリングし、各画像に対し、各画像の特徴量が属するクラスタに付与された番号を、第２の正解ラベルとして付与する。画像の見た目が反映される特徴量としては、例えば、ＢｏＶＷ（Ｂａｇ  ｏｆ  Ｖｉｓｕａｌ  Ｗｏｒｄｓ）が挙げられる。ＢｏＶＷは、画像に含まれる特徴点（画像中のエッジやコーナー等の特徴的な部分）の配置状態に基づいて得られる特徴量であり、ＢｏＶＷの類似度が高い画像同士は見た目が類似する。したがって、このような第２の正解ラベルを用いることにより、見た目が類似する画像同士が１つのクラスタに分類されるようになる。
【００２４】
主学習部１４は、ラベル付与部１３が第２の正解ラベルを付与した学習用画像データを用いて、分類器１１のＣＮＮを学習させる。なお、この学習（主学習）の際は、主学習部１４は、予め、分類器１１のＣＮＮの出力層１１８が出力するクラスの数（出力ベクトルの次元数）を、ラベル付与部１３が第２の正解ラベルを付与した時に用いた上記クラスタの数（主学習におけるクラスの数であり、例えば３２）に合わせる。そして、主学習部１４は、学習用画像データをＣＮＮの入力層１１１に入力した時に出力層１１８から出力される出力値と第２の正解ラベルとの誤差に基づき、誤差逆伝播法により、分類器１１のＣＮＮ内の重み係数を更新することにより、分類器１１のＣＮＮを学習させる。
【００２５】
微調整部１５は、主学習部１４が学習させた分類器１１のＣＮＮの学習状態（ＣＮＮ内の重み係数）を、第１の正解ラベルが付与された学習用画像データを用いて微調整する。この微調整は、例えば、後述するように、Ｔｒｉｐｌｅｔ  ｎｅｔｗｏｒｋを利用した類似度学習により行う。また、分類器１１への入力画像に類似する画像を検索する時には、分類器１１のＣＮＮの出力層１１８からは、その分類結果として、画像検索に用いる特徴ベクトルを出力する必要がある。したがって、この微調整の際は、微調整部１５は、予め、分類器１１のＣＮＮの出力層１１８が出力する出力ベクトルの次元数を、類似画像検索時に用いる特徴ベクトルの次元数（例えば２５６次元）に合わせる。
【００２６】
検索部１６は、微調整部１５により微調整された分類器１１のＣＮＮが出力する出力ベクトルの値に基づいて、検索画像（画像入力部３１を介してユーザから入力された、画像検索装置１００で検索する（未知の）画像データ）に類似する画像を検索する。
【００２７】
以上、画像検索装置１００の機能構成について説明した。次にＣＮＮの概要を説明する。ＣＮＮは、人間の視覚野の神経細胞の働きを模倣したニューラルネットワークであり、その原型はネオコグニトロンである。ＣＮＮは、一般的な順伝搬型のニューラルネットワークとは異なり、全結合層だけでなく、畳み込み層（Ｃｏｎｖｏｌｕｔｉｏｎ  Ｌａｙｅｒ）とプーリング層（Ｐｏｏｌｉｎｇ  Ｌａｙｅｒ）を中間層として含んでおり、中間層によって入力画像の特徴が抽出される。そして、出力層において、入力画像の分類結果が確率的に表現される。Ｎクラス分類を行うＣＮＮの典型的な構成概要について、図２を参
照して説明する。
【００２８】
図２に示すように、Ｎクラス分類を行うＣＮＮは、入力画像が入力される入力層１１１に対して、畳み込み処理（フィルタの走査）やプーリング処理（ウィンドウの走査）を行って徐々にサイズの小さな特徴マップ１１２，１１３，１１４，１１５，１１６，１１７を算出していき、最終的に出力層１１８から、Ｎ次元の出力ベクトルを得る。図２に示す例では、入力された入力画像に対して、畳み込み処理用のフィルタ１２１，１２３，１２４，１２５やプーリング処理用のウィンドウ１２２，１２６を、縦横ともにストライド２で走査することによって、徐々にサイズの小さな特徴マップを算出し、最終的な出力を得ている。なお、「ストライド２で走査する」とは、画素又は特徴マップを構成する要素を１つ飛ばしで走査（２つずつずらして走査）することを言う。
【００２９】
フィルタ１２１，１２３，１２４，１２５の各要素には、重み係数が割り当てられており、同一チャネル数の入力画像又は特徴マップの上を平面方向に走査することにより、入力画像又は特徴マップの各注目点において、スカラ値の内積結果が出力され、新たな特徴マップが得られる。そして、フィルタを複数枚（ｎ枚）適用することにより、その枚数分（ｎチャネル）の特徴マップが得られる。また、ストライド２で走査する度に、特徴マップのサイズは縦横ともに１／２のサイズになる。この結果、後段に行くに従い、より大局的な特徴抽出が行われる（フィルタサイズは、特徴マップサイズに対して相対的に拡大する）ことになる。
【００３０】
図２に示す例では、ＣＮＮの中間層の最終層（特徴マップ１１７）と、出力層１１８とは重み係数が割り当てられた全結合接続１２７で接続されており、通常のニューラルネットと同様に重み付け加算が行われる。ＣＮＮの中間層の最終層は、出力層１１８と全結合接続１２７で接続していることから、全結合層とも呼ばれる。この例では、Ｎクラスの分類を行うので、出力層１１８はＮ個の素子（若しくはユニット）を持ち、その素子の値の大小により、推定した分類の確率の大小が表現される。
【００３１】
ＣＮＮでは、全結合接続１２７の各結合に割り当てられている重み係数や、上記フィルタ１２１，１２３，１２４，１２５の重み係数を、予め用意した学習データを用いて取得することができる。具体的には、まず、学習データを入力画像として入力層１１１に入力し、順方向伝播させて出力層１１８から出力結果を得る。そして、その出力結果と正解（入力した学習データに付与されている正解ラベル）との違い（誤差）を求め、誤差逆伝播法を用いて、誤差を減らす方向に重み係数を更新する。この操作を、学習率（誤差逆伝播法における重み係数の更新量）を下げながら繰り返し実行することにより、重み係数の値を収束させる。
【００３２】
ＣＮＮの各重み係数を学習データで学習させた後は、未知の画像データを入力画像データとして順方向に伝播させることで、出力層１１８に入力画像の分類の推論値である出力結果が得られる。通常のＣＮＮでは、出力層１１８の素子数（出力ベクトルの次元数）は、分類するクラスの数に合わせた所定の値（図２の例ではＮ）であるが、画像検索装置１００では、学習の種類（事前学習、主学習、微調整）に応じて、出力層１１８及びその直前の全結合接続１２７を次のように入れ替える。
【００３３】
事前学習においては、出力層１１８の素子数を事前学習用データで用いるクラスの数にする。例えば、事前学習用データで用いるクラスの数を５１２とすると、事前学習時のＣＮＮの出力層１１８の素子数を図３に示すように５１２にして、ＣＮＮを学習させる。
【００３４】
そして、主学習においては、出力層１１８の素子数をラベル付与部１３が第２の正解ラベルを付与した時に用いたクラスタの数にする。例えば、このクラスタの数を３２とすると、主学習時のＣＮＮの出力層１１８の素子数を図４に示すように３２にして、ＣＮＮを学習させる。この時、事前学習で学習させたＣＮＮの入力層１１１から特徴マップ１１７までの学習後の重み係数はそのまま用いるので、全結合接続１２７と出力層１１８だけを主学習用に入れ替えたＣＮＮを学習させることになる。すなわち、第２の正解ラベルと出力層１１８との誤差に基づいて、全結合接続１２７の重み係数が更新される。
【００３５】
そして、微調整においては、出力層１１８の素子数を、その後の画像検索時に用いる特徴ベクトルの次元数にする。例えば、特徴ベクトルの次元数を２５６にするなら、微調整時のＣＮＮの出力層１１８の素子数を図５に示すように２５６にして、ＣＮＮを学習させる。この時、事前学習及び主学習で学習させたＣＮＮの入力層１１１から特徴マップ１１７までの学習後の重み係数はそのまま用いるので、全結合接続１２７と出力層１１８だけを微調整用に入れ替えたＣＮＮを学習させることになる。この学習は、所謂ファインチューニングであり、後述する損失Ｌを用いた誤差逆伝播法により、損失Ｌを誤差とみなし、損失Ｌの値が小さくなるようにＣＮＮの出力層１１８に近い層（全結合接続１２７等）のみにおいて、重み係数が更新される。このようなファインチューニングにより、ＣＮＮ内の学習済みの重み係数を生かしつつ、出力層１１８の出力値に大きく影響を与える重み係数を効率的に更新することができる。なお、通常、ＣＮＮの出力に対しては、Ｓｏｆｔｍａｘ処理を行うが、画像検索装置１００においては、微調整後の出力層１１８の出力値をそのまま特徴ベクトルの値として扱うため、Ｓｏｆｔｍａｘ処理は不要である。Ｓｏｆｔｍａｘ処理しない方が、特徴ベクトルの持つ情報をそのまま扱うことができるため、より適切な画像検索を行える可能性が高い。
【００３６】
以上、画像検索装置１００の分類器１１が備えるＣＮＮの概要を説明した。次に、画像検索装置１００が行う学習処理について、図６を参照して説明する。この学習処理は、操作入力部３４を介して、ユーザにより、画像検索装置１００に対して学習処理の開始が指示されると開始される。
【００３７】
まず、事前学習部１２は、通信部３３を介してＩｍａｇｅＮｅｔ等の一般画像認識用のデータセットを取得し、この一般画像認識用のデータセットを用いて分類器１１のＣＮＮを学習させる（ステップＳ１０１）。
【００３８】
次に、ラベル付与部１３は、学習用の画像データセットに含まれる画像データ（学習用画像データ）のそれぞれに、画像の見た目の類似度に基づく第２の正解ラベルを付与する（ステップＳ１０２）。この処理（正解ラベル付与処理）については、図７を参照して後述する。ステップＳ１０２はラベル付与ステップとも呼ばれる。
【００３９】
次に、主学習部１４は、学習用の画像データセットに含まれる画像データと、ラベル付与部１３が当該画像データに付与した第２の正解ラベルとに基づいて、分類器１１のＣＮＮを学習させる（ステップＳ１０３）。すなわち、主学習部１４は、分類器１１に画像データを入力して得られる出力値と第２の正解ラベルとの誤差に基づき、誤差逆伝播法により、分類器１１のＣＮＮ内の重み係数を更新する。ステップＳ１０３は主学習ステップとも呼ばれる。
【００４０】
次に、微調整部１５は、主学習部１４が学習させた分類器１１のＣＮＮの学習状態を、学習用画像データを用いて微調整する処理（微調整処理）を行う（ステップＳ１０４）。微調整処理については図８を参照して後述する。ステップＳ１０４は、微調整ステップとも呼ばれる。
【００４１】
次に、検索部１６は、検索用の画像データセットに含まれる画像データを分類器１１のＣＮＮに入力して出力層１１８から得られた特徴ベクトルを当該画像データに付与する処理を、検索用の画像データセットに含まれる全ての画像データについて行い（ステップＳ１０５）、学習処理を終了する。
【００４２】
次に、学習処理（図６）のステップＳ１０２で行われる正解ラベル付与処理について、図７を参照して説明する。
【００４３】
まず、制御部１０は、学習用画像データのそれぞれから、ＢｏＶＷを用いて特徴量を抽出する（ステップＳ２０１）。ステップＳ２０１では、制御部１０は、特徴量抽出部として機能する。次に、ラベル付与部１３は、全ての学習用画像データから抽出した特徴量をｋ−ｍｅａｎｓ法でクラスタリングする（ステップＳ２０２）。クラスタリングする際のクラスタ数は任意の数（例えば３２）である。
【００４４】
次に、ラベル付与部１３は、ステップＳ２０２でクラスタリングして生成された各クラスタに番号を割り振る（ステップＳ２０３）。例えば、３２個のクラスタにクラスタリングしたならば、１から３２までの番号を各クラスタに割り振る。番号の割り振り方は任意であるが、異なるクラスタには異なる番号が割り振られるようにする。
【００４５】
次に、ラベル付与部１３は、学習用画像データのそれぞれに、当該画像データの特徴量が属するクラスタに割り振られた番号を第２の正解ラベルとして付与し（ステップＳ２０４）、正解ラベル付与処理を終了する。
【００４６】
なお、ここでは、画像の特徴量として、ＢｏＶＷを用いたが、画像の見た目の類似度が反映される特徴量であれば、任意の特徴量を用いてよい。また、クラスタリングの方法として、ｋ−ｍｅａｎｓ法を用いたが、ｋ−ｍｅａｎｓ法に限定する必要はなく、類似する特徴量が同じクラスタにまとまり、類似しない特徴量は他のクラスタにまとまるようにクラスタリングできる方法であれば、任意のクラスタリング手法を用いてよい。
【００４７】
次に、学習処理（図６）のステップＳ１０４で行われる微調整処理について、図８を参照して説明する。この処理は、Ｔｒｉｐｌｅｔ  ｎｅｔｗｏｒｋを利用した類似度学習を行う処理である。
【００４８】
まず、微調整部１５は、学習用の画像データセットの中から、３つのデータの組をＮ組（Ｎは任意の数）取得する（ステップＳ３０１）。これらの３つのデータは、基準となる画像データ（ａｎｃｈｏｒ画像データ）と、ａｎｃｈｏｒ画像データと同じ第１の正解ラベルが付与されている画像データ（ｐｏｓｉｔｉｖｅ画像データ）と、ａｎｃｈｏｒ画像データに付与されている第１の正解ラベルとは異なるラベルが第１の正解ラベルとして付与されている画像データ（ｎｅｇａｔｉｖｅ画像データ）とからなる。ステップＳ３０１では、まずａｎｃｈｏｒ画像データ（第１の画像）を学習用の画像データセットの中からランダムに選び、選ばれたａｎｃｈｏｒ画像データに対して、ｐｏｓｉｔｉｖｅ画像データ（第２の画像）とｎｅｇａｔｉｖｅ画像データ（第３の画像）とを学習用の画像データセットの中からランダムに１つずつ選ぶ。このようにして、３つの画像データの組「ａｎｃｈｏｒ，ｐｏｓｉｔｉｖｅ，ｎｅｇａｔｉｖｅ」を取得する処理を、Ｎ回繰り返す。
【００４９】
次に、微調整部１５は、取得した各画像データを分類器１１のＣＮＮに入力し、出力層１１８から特徴ベクトルを取得する（ステップＳ３０２）。すなわち、ａｎｃｈｏｒ画像データ（第１の画像）から第１の特徴ベクトルを、ｐｏｓｉｔｉｖｅ画像データ（第２の画像）から第２の特徴ベクトルを、ｎｅｇａｔｉｖｅ画像データ（第３の画像）から第３の特徴ベクトルを、それぞれ取得する。ステップＳ３０１で取得した３つの画像データの組はＮ組あるので、第ｉ番目の３つの画像データの組を「ａｉ，ｐｉ，ｎｉ」で表し、画像データから特徴ベクトルを得る関数をｆで表すことにすると、ステップＳ３０２では、３つの特徴ベクトルの組「ｆ（ａｉ），ｆ（ｐｉ），ｆ（ｎｉ）」が、ｉ＝１からｉ＝ＮまでのＮ組得られることになる。
【００５０】
次に、微調整部１５は、式（１）の損失関数（Ｔｒｉｐｌｅｔ  Ｌｏｓｓ）を用いて損失Ｌを計算する（ステップＳ３０３）。
Ｌ＝Σi=1,N ｍａｘ（０，（||ｆ(ａｉ)−ｆ(ｐｉ)||２
−||ｆ(ａｉ)−ｆ(ｎｉ)||２＋α））  …（１）
ここで、Σi=1,N はそれに続く式においてｉに１からＮまでを代入した時の和を、ｍａｘは引数の最大値を、||ｆ(ａｉ)−ｆ(ｐｉ)||２はｆ(ａｉ)−ｆ(ｐｉ)で表されるベクトルのＬ２ノルムの２乗を、||ｆ(ａｉ)−ｆ(ｎｉ)||２はｆ(ａｉ)−ｆ(ｎｉ)で表されるベクトルのＬ２ノルムの２乗を、それぞれ表す。また、αはａｎｃｈｏｒ画像データの特徴ベクトルとｐｏｓｉｔｉｖｅ画像データの特徴ベクトルとの間の距離（Ｌ２ノルム）より、ａｎｃｈｏｒ画像データの特徴ベクトルとｎｅｇａｔｉｖｅ画像データの特徴ベクトルとの間の距離（Ｌ２ノルム）の方が、α以上離れるように設定するためのパラメータであり、所定の数（例えば０．２）が設定される。
【００５１】
次に、微調整部１５は、ステップＳ３０３で得られた損失Ｌを用いて誤差逆伝播法により、損失Ｌの値が小さくなるように分類部１１のＣＮＮの重み係数の更新を行う（ステップＳ３０４）。このようにして分類部１１のＣＮＮの重み係数の更新を行うことによって、主学習部１４が学習させた分類器１１の学習状態が微調整される。次に、微調整部１５は、ステップＳ３０１からステップＳ３０４を所定回数（例えば５回）繰り返したか否かを判定する（ステップＳ３０５）。
【００５２】
所定回数繰り返していなければ（ステップＳ３０５；Ｎｏ）、ステップＳ３０１に戻り、所定回数繰り返していれば（ステップＳ３０５；Ｙｅｓ）、微調整処理を終了する。微調整処理では、上述の損失関数で損失Ｌを計算することにより、同じクラスに属する画像（付与されている第１の正解ラベルが等しい画像）間で特徴ベクトルの類似度が高くなり、異なるクラスに属する画像（付与されている第１の正解ラベルが異なる画像）間で特徴ベクトルの類似度が低くなる。
【００５３】
以上説明した学習処理、正解ラベル付与処理及び微調整処理により、分類部１１のＣＮＮは、（主学習部１４により）見た目の類似度が高い画像データ同士や、（微調整部１５により）学習用画像データに付与された第１の正解ラベルが等しい画像同士の場合に、それぞれの画像データを入力した時に出力される特徴ベクトル同士が類似するように学習される。
【００５４】
次に、このように学習された分類器１１のＣＮＮを用いて画像検索を行う検索処理について、図９を参照して説明する。この検索処理は、操作入力部３４を介して、ユーザにより、画像検索装置１００に対して検索処理の開始が指示されると開始される。
【００５５】
まず、検索部１６は、画像入力部３１を介して、ユーザから検索画像の入力を受け付ける（ステップＳ４０１）。次に、検索部１６は、検索画像を分類器１１のＣＮＮに入力し、ＣＮＮの出力層１１８から検索画像の特徴ベクトルを取得する（ステップＳ４０２）。
【００５６】
そして、検索部１６は、検索用の画像データセットに含まれる画像データのそれぞれに付与されている特徴ベクトルとステップＳ４０２で取得された特徴ベクトルとの類似度を検索用の画像データセットに含まれる全ての画像データについて求め、類似度の高い順に所定の個数の検索用画像データを出力部３２に出力し（ステップＳ４０３）、検索処理を終了する。検索用画像データを出力する際には、検索用画像データとともに当該検索用画像データの（検索画像との）類似度を出力部３２に出力してもよい。
【００５７】
分類部１１のＣＮＮは、学習用画像データに付与された第１の正解ラベルが互いに等しい画像間だけでなく、ラベル付与部１３が付与した第２の正解ラベルが互いに等しい画像（見た目が類似する画像）間でも特徴ベクトルが類似するように学習されている。そのため、上述の検索処理により、分類器１１に入力された検索画像の特徴ベクトルと類似度が高い特徴ベクトルが付与されている検索用画像データのうち、学習用画像データに付与された第１の正解ラベルの観点で検索画像に類似する画像（検索画像と同じクラスに分類される画像）と、ラベル付与部１３が付与した第２の正解ラベルのクラスタに分類される画像（検索画像と見た目が類似する画像）とが、いずれも検索結果の上位に出力されるようになる。従って、画像検索装置１００は、同じクラスに分類される画像だけでなく、見た目が類似する画像も検索されるようにすることができる。なお、「第１の正解ラベルの観点で検索画像に類似する」とは、第１の正解ラベルが付与された学習データを用いて学習された分類器１１を用いて、検索画像の特徴ベクトルと対象画像の特徴ベクトルとをそれぞれ取得した場合に、取得した検索画像の特徴ベクトルと対象画像の特徴ベクトルとが類似することを意味する。
【００５８】
（変形例１）
上述の実施形態では、主学習部１４は、ラベル付与部１３が学習用画像データに付与した第２の正解ラベルに基づいて、分類器１１のＣＮＮを学習させた。しかし、分類器１１のＣＮＮを学習させる際の正解ラベルはこれに限られない。例えば、学習用画像データに元々付与されている第１の正解ラベルに基づいて、分類器１１のＣＮＮを学習させてもよい。このような変形例１について以下に説明する。簡単に言えば、変形例１は、主学習部１４が学習時に用いる正解ラベルと、微調整部１５が微調整時に用いる正解ラベルとを、実施形態１と逆にして処理する実施形態である。
【００５９】
変形例１の主学習部１４は、第１の正解ラベルが付与された学習用画像データを用いて、分類器１１のＣＮＮを学習させる。具体的には、画像検索装置１００が検索する対象が、例えば、皮膚疾患の画像であるなら、第１の正解ラベルとして皮膚疾患名が付与された学習用画像データを用いて分類器１１のＣＮＮを学習させる。また、検索する対象が、例えば、花の画像であるなら、第１の正解ラベルとして花の名称が付与された学習用画像データを用いて分類器１１のＣＮＮを学習させる。
【００６０】
なお、この学習（主学習）の際は、主学習部１４は、予め、分類器１１のＣＮＮの出力層１１８が出力するクラスの数（出力ベクトルの次元数）を、学習用の画像データセットで用いるクラスの数（分類器１１が分類する疾患名や花の名称（第１の正解ラベル）の数であり、例えば８）に合わせる。そして、主学習部１４は、学習用画像データをＣＮＮの入力層１１１に入力した時に出力層１１８から出力される出力値と第１の正解ラベルとの誤差に基づき、誤差逆伝播法により、分類器１１のＣＮＮ内の重み係数を更新することにより、分類器１１のＣＮＮを学習させる。
【００６１】
変形例１の微調整部１５は、主学習部１４が学習させた分類器１１のＣＮＮの学習状態（ＣＮＮ内の重み係数）を、ラベル付与部１３が第２の正解ラベルを付与した学習用画像データを用いて微調整する。この微調整は、例えば、実施形態１で上述したように、Ｔｒｉｐｌｅｔ  ｎｅｔｗｏｒｋを利用した類似度学習により行う。また、この微調整の際は、微調整部１５は、予め、分類器１１のＣＮＮの出力層１１８が出力する出力ベクトルの次元数を、画像検索時に用いる特徴ベクトルの次元数（例えば２５６次元）に合わせる。
【００６２】
これら以外については、変形例１は実施形態１と同じであり、学習処理、正解ラベル付与処理、検索処理等も、実施形態１と同様に処理することができる。変形例１においても、分類部１１のＣＮＮは、学習用画像データに付与された第１の正解ラベルが互いに等しい画像間だけでなく、ラベル付与部１３が付与した第２の正解ラベルが互いに等しい画像（見た目が類似する画像）間でも特徴ベクトルが類似するように学習される。そのため、検索処理により、学習用画像データに付与された第１の正解ラベルの観点で検索画像に類似する画像（検索画像と同じクラスに分類される画像）とラベル付与部１３が付与した第２の正解ラベルのクラスタに分類される画像（検索画像と見た目が類似する画像）とが、いずれも検索結果の上位に出力されるようになる。従って、変形例１の画像検索装置１００は、同じクラスに分類される画像だけでなく、見た目が類似する画像も検索されるようにすることができる。
【００６３】
（変形例２）
上述の実施形態１及び変形例１では、ラベル付与部１３は、学習用画像データのそれぞれに、ＢｏＶＷを用いて画像の見た目の類似度に基づく第２の正解ラベルを付与した。しかし、第２の正解ラベル付与の観点を、画像の見た目の類似度に限定する必要はない。例えば色の類似度、明暗の類似度、周波数成分の類似度等、何らかの観点での類似度に基づいて学習用の画像データセットをクラスタリングして、学習用画像データのそれぞれに第２の正解ラベルを付与してもよい。このような実施形態を変形例２とする。
【００６４】
例えば、部屋の壁紙のデザインの検索、衣服のデザインの検索等において、学習用画像データに元々付与されている第１の正解ラベル以外に、暖色系／寒色系等の観点でもユーザが指定したデザインに類似したデザインを検索したい場合があるが、このような場合には変形例２のラベル付与部１３において、色の類似度に基づいて、学習用画像データに第２の正解ラベルを付与すればよい。
【００６５】
このようにすることにより、変形例２の画像検索装置１００は、同じクラスに分類される画像だけでなく、所定の観点（色の類似度等の観点）において類似する画像も検索されるようにすることができる。
【００６６】
（変形例３）
上述の実施形態１及び変形例では、ラベル付与部１３は、各学習用画像データに１つの正解ラベル（第２の正解ラベル）のみを付与したが、複数の観点に基づいて、複数の正解ラベルを付与してもよい。例えば、見た目の類似度に基づく正解ラベル（第２の正解ラベル）、色の類似度に基づく正解ラベル（第３の正解ラベル）、明暗の類似度に基づく正解ラベル（第４の正解ラベル）、を各学習用画像データに付与することが考えられる。このような実施形態を変形例３とする。
【００６７】
変形例３の主学習部１４は、これら複数の正解ラベルの中の１つを用いて、分類器１１のＣＮＮを学習させる。そして、変形例３の微調整部１５は、主学習部１４が用いなかった複数の正解ラベルを順番に使って、微調整処理を繰り返し（正解ラベルの種類数−１回）行う。
【００６８】
このようにすることにより、変形例３の画像検索装置１００は、同じクラスに分類される画像だけでなく、様々な観点（見た目の類似度、色の類似度等、複数の観点）において類似する画像も検索されるようにすることができる。
【００６９】
（変形例４）
上述の実施形態及び変形例では、微調整処理における損失関数としてＴｒｉｐｌｅｔ  Ｌｏｓｓを用いたが、損失関数はＴｒｉｐｌｅｔ  Ｌｏｓｓに限定されない。例えば、損失関数として、Ｃｏｎｔｒａｓｔｉｖｅ  Ｌｏｓｓを用いてもよい。損失関数としてＣｏｎｔｒａｓｔｉｖｅ  Ｌｏｓｓを用いた実施形態を変形例４とする。
【００７０】
変形例４における微調整処理について、図１０を参照して説明する。この処理は、実施形態１の微調整処理（図８）のステップＳ３０１〜ステップＳ３０３を、ステップＳ３１１〜ステップＳ３１３に置き換えた処理である。変形例４においても、微調整処理は学習処理（図６）のステップＳ１０４で呼び出される処理であることは、実施形態１と同様である。
【００７１】
まず、微調整部１５は、学習用の画像データセットの中から、２つの画像データの組をＮ組（Ｎは任意の数）取得する（ステップＳ３１１）。この２つの画像データは、学習用の画像データセットの中から、任意に選んだ２つの画像データであり、ここでは、画像データａ（第１の画像）と画像データｂ（第２の画像）の２つとする。ステップＳ３１１では、まず画像データａを学習用の画像データセットの中からランダムに選び、次に学習用の画像データセットの中から画像データａ以外の画像データｂをランダムに１つずつ選ぶ。このようにして、２つの画像データの組「ａ，ｂ」を取得する処理を、Ｎ回繰り返す。
【００７２】
次に、微調整部１５は、取得した各画像データを分類器１１のＣＮＮに入力し、出力層１１８から特徴ベクトルを取得する（ステップＳ３１２）。すなわち、画像データａ（第１の画像）から第１の特徴ベクトルを、画像データｂ（第２の画像）から第２の特徴ベクトルを、それぞれ取得する。ステップＳ３１１で取得した２つの画像データの組はＮ組あるので、第ｉ番目の２つの画像データの組を「ａｉ，ｂｉ」で表し、画像データから特徴ベクトルを得る関数をｆで表すことにすると、ステップＳ３１２では、２つの特徴ベクトルの組「ｆ（ａｉ），ｆ（ｂｉ）」が、ｉ＝１からｉ＝ＮまでのＮ組得られることになる。
【００７３】
次に、微調整部１５は、式（２）の損失関数（Ｃｏｎｔｒａｓｔｉｖｅ  Ｌｏｓｓ）を用いて損失Ｌを計算する（ステップＳ３１３）。
Ｌ＝Σi=1,N ｙａｂ（||ｆ(ａｉ)−ｆ(ｂｉ)||２
＋（１−ｙａｂ）ｍａｘ（（α−||ｆ(ａｉ)−ｆ(ｂｉ)||２），０）  …（２）
ここで、Σi=1,N はそれに続く式においてｉに１からＮまでを代入した時の和を表す。そして、ｙａｂは画像データａに付与された第１の正解ラベルと画像データｂに付与された第１の正解ラベルとが等しい場合に１、異なる場合に０の値を取る。また、ｍａｘは引数の最大値を、||ｆ(ａｉ)−ｆ(ｂｉ)||２はｆ(ａｉ)−ｆ(ｂｉ)で表されるベクトルのＬ２ノルムの２乗（すなわち第１の特徴ベクトルと、第２の特徴ベクトルと、の間の距離の２乗）を、それぞれ表す。そして、αは、画像データａに付与された第１の正解ラベルと画像データｂに付与された第１の正解ラベルとが異なる場合に、画像データａの特徴ベクトルと画像データｂの特徴ベクトルとの間の距離がα離れるように設定するためのパラメータであり、所定の数（例えば０．２）が設定される。
【００７４】
ステップＳ３１３の処理の後は、ステップＳ３０４に進むが、ステップＳ３０４以降の処理は、図８を参照して説明した実施形態１の微調整処理と同様のため、説明を省略する。画像データａと画像データｂとで、付与されている第１の正解ラベルが等しい時の||ｆ(ａｉ)−ｆ(ｂｉ)||を第１の距離、付与されている第１の正解ラベルが異なる時の時の||ｆ(ａｉ)−ｆ(ｂｉ)||を第２の距離、とそれぞれ呼ぶことにすると、変形例４の微調整処理では、上述の損失関数で損失Ｌを計算することにより、第１の距離が第２の距離よりも小さくなるように、分類器１１の学習状態が微調整されることになる。したがって、変形例４の微調整処理でも、同じクラスに属する画像（付与されている第１の正解ラベルが等しい画像）間で特徴ベクトルの類似度が高くなり、異なるクラスに属する画像（付与されている第１の正解ラベルが異なる画像）間で特徴ベクトルの類似度が低くなる。
【００７５】
損失関数としてＴｒｉｐｌｅｔ  Ｌｏｓｓを用いる場合とＣｏｎｔｒａｓｔｉｖｅ  Ｌｏｓｓを用いる場合とで比較すると、Ｃｏｎｔｒａｓｔｉｖｅ  Ｌｏｓｓは、損失Ｌを計算する際に用いる画像データが２つなので、計算量が少ないというメリットがある。また、Ｔｒｉｐｌｅｔ  Ｌｏｓｓは、画像データを３つ用いる代わりに、正ペア（ａｎｃｈｏｒ画像データの特徴ベクトルとｐｏｓｉｔｉｖｅ画像データの特徴ベクトルのペア）と負ペア（ａｎｃｈｏｒ画像データの特徴ベクトルとｎｅｇａｔｉｖｅ画像データの特徴ベクトルのペア）を相対的に最適化するため、正ペア同士であっても、特徴ベクトル間の距離は簡単には０にはならず、画像データ間の類似度をより反映した特徴ベクトルを得やすいというメリットがある。
【００７６】
なお、Ｃｏｎｓｔｒａｓｔｉｖｅ  Ｌｏｓｓは、従来から使われている方法であり、距離学習においてある程度の効果の実績がある。特徴量を学習する方法として、識別を学習したＣＮＮの中間層の出力を特徴量とする方法もあるが、この方法では特徴ベクトルの類似度を学習できないという問題がある。それに対し、Ｔｒｉｐｌｅｔ  ＬｏｓｓやＣｏｎｓｔｒａｓｉｖｅ  Ｌｏｓｓは、類似度を直接学習することが可能という特長がある。
【００７７】
なお、上述の実施形態及び変形例では、ＣＮＮによる分類器１１を実現するプログラムを制御部１０が実行することにより、制御部１０は分類器１１としても機能することとしていたが、これに限られない。画像検索装置１００は、制御部１０とは別に分類器１１の機能を実現するデバイス（例えば、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）や、専用のＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）等のデバイス）を備えてもよい。また、分類器１１はＣＮＮ以外（例えば、ＲＮＮ（Ｒｅｃｕｒｒｅｎｔ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）等）のＮＮ（Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）による画像の分類器であってもよい。
【００７８】
また、上述の実施形態及び変形例では、図３、図４及び図５に示すように、事前学習時、主学習時、微調整時のそれぞれにおいて、分類器１１のＣＮＮの出力層１１８及びその直前の全結合接続１２７のみを入れ替えることとして説明したが、これに限られない。出力層１１８が出力するクラスの数が同じでよい場合は入れ替える必要はない。また、クラスの数が異なる場合は、出力層１１８及びその直前の全結合接続１２７の入れ替えは必須であるが、さらにその前に存在する特徴マップ１１７や特徴マップ１１６等も出力層１１８及び全結合接続１２７とともに入れ替えてもよい。
【００７９】
なお、画像検索装置１００の各機能は、通常のＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等のコンピュータによっても実施することができる。具体的には、上記実施形態では、画像検索装置１００が行う学習処理及び検索処理のプログラムが、記憶部２０のＲＯＭに予め記憶されているものとして説明した。しかし、プログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）、ＭＯ（Ｍａｇｎｅｔｏ−Ｏｐｔｉｃａｌ  Ｄｉｓｃ）、メモリカード、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリ等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータに読み込んでインストールすることにより、上述の各機能を実現することができるコンピュータを構成してもよい。
【００８０】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【００８１】
（付記１）
教師あり学習に用いる学習用の画像データセットに含まれる各画像に付与されている正解ラベルである第１の正解ラベルが付与された画像に、所定の観点での類似度に基づく正解ラベルである第２の正解ラベルを付与するラベル付与部と、
前記第１及び第２の正解ラベルの一方が付与された前記画像を用いて分類器を学習させる主学習部と、
前記第１及び第２の正解ラベルの他方が付与された前記画像を用いて、前記主学習部が学習させた前記分類器の学習状態を微調整する微調整部と、
前記微調整部が微調整した前記分類器を用いてユーザから入力された検索画像に類似する画像を検索する検索部と、
を備える画像検索装置。
【００８２】
（付記２）
前記微調整部は、前記分類器の出力層に近い層のみにおいて、各層間の結びつきの強さを規定する重み係数の更新を行うことにより、前記分類器の学習状態を微調整する、
付記１に記載の画像検索装置。
【００８３】
（付記３）
前記微調整部は、
前記学習用の画像データセットから、互いに異なる第１の画像と第２の画像を取得し、
前記第１の画像に付与された正解ラベルと前記第２の画像に付与された正解ラベルとが互いに等しい場合の、前記第１の画像を前記分類器に入力して得られる第１の特徴ベクトルと、前記第２の画像を前記分類器に入力して得られる第２の特徴ベクトルと、の間の距離である第１の距離が、
前記第１の画像に付与された正解ラベルと前記第２の画像に付与された正解ラベルとが互いに異なる場合の、前記第１の画像を前記分類器に入力して得られる第１の特徴ベクトルと、前記第２の画像を前記分類器に入力して得られる第２の特徴ベクトルと、の間の距離である第２の距離よりも、
小さくなるように前記分類器の重み係数の更新を行うことにより、前記分類器の学習状態を微調整する、
付記２に記載の画像検索装置。
【００８４】
（付記４）
前記微調整部は、
前記学習用の画像データセットから、第１の画像と、第１の画像に付与された正解ラベルと等しい正解ラベルが付与された第２の画像と、第１の画像に付与された正解ラベルとは異なるラベルが正解ラベルとして付与された第３の画像と、を取得し、
前記第１の画像を前記分類器に入力して得られる第１の特徴ベクトルと、前記第２の画像を前記分類器に入力して得られる第２の特徴ベクトルと、前記第３の画像を前記分類器に入力して得られる第３の特徴ベクトルと、を取得し、
前記第１の特徴ベクトルと前記第２の特徴ベクトルとの間の距離より、前記第１の特徴ベクトルと前記第３の特徴ベクトルとの間の距離の方が大きくなるように、前記分類器の重み係数の更新を行うことにより、前記分類器の学習状態を微調整する、
付記３に記載の画像検索装置。
【００８５】
（付記５）
前記ラベル付与部は、前記画像に、前記第２の正解ラベルとして、見た目の類似度に基づく正解ラベルを付与する、
付記１から４のいずれか１つに記載の画像検索装置。
【００８６】
（付記６）
前記画像の見た目の特徴量を抽出する特徴量抽出部をさらに備え、
前記ラベル付与部は、前記特徴量抽出部が抽出した特徴量を複数のクラスタにクラスタリングすることにより前記画像に前記第２の正解ラベルを付与する、
付記５に記載の画像検索装置。
【００８７】
（付記７）
前記特徴量抽出部は、前記見た目の特徴量として特徴点の配置状態に基づく特徴量を抽出する、
付記６に記載の画像検索装置。
【００８８】
（付記８）
前記主学習部が前記分類器を学習させる前に、事前に前記分類器を学習させる事前学習を行う事前学習部をさらに備え、
前記事前学習部は、一般画像認識用のデータセットを用いて前記事前学習を行う、
付記１から７のいずれか１つに記載の画像検索装置。
【００８９】
（付記９）
前記主学習部は、前記第２の正解ラベルが付与された前記画像を用いて前記分類器を学習させ、
前記微調整部は、前記第１の正解ラベルが付与された前記画像を用いて、前記主学習部が学習させた前記分類器の学習状態を微調整する、
付記１から８のいずれか１つに記載の画像検索装置。
【００９０】
（付記１０）
前記主学習部は、前記第１の正解ラベルが付与された前記画像を用いて前記分類器を学習させ、
前記微調整部は、前記第２の正解ラベルが付与された前記画像を用いて、前記主学習部が学習させた前記分類器の学習状態を微調整する、
付記１から８のいずれか１つに記載の画像検索装置。
【００９１】
（付記１１）
教師あり学習に用いる学習用の画像データセットに含まれる各画像に付与されている正解ラベルである第１の正解ラベルが付与された画像に、所定の観点での類似度に基づく正解ラベルである第２の正解ラベルを付与するラベル付与ステップと、
前記第１及び第２の正解ラベルの一方が付与された前記画像を用いて分類器を学習させる主学習ステップと、
前記第１及び第２の正解ラベルの他方が付与された前記画像を用いて、前記主学習ステップで学習させた前記分類器の学習状態を微調整する微調整ステップと、
を備える分類器学習方法。
【００９２】
（付記１２）
コンピュータに、
教師あり学習に用いる学習用の画像データセットに含まれる各画像に付与されている正解ラベルである第１の正解ラベルが付与された画像に、所定の観点での類似度に基づく正解ラベルである第２の正解ラベルを付与するラベル付与ステップ、
前記第１及び第２の正解ラベルの一方が付与された前記画像を用いて分類器を学習させる主学習ステップ、及び、
前記第１及び第２の正解ラベルの他方が付与された前記画像を用いて、前記主学習ステップで学習させた前記分類器の学習状態を微調整する微調整ステップ、
を実行させるためのプログラム。
【符号の説明】
【００９３】
１０…制御部、１１…分類器、１２…事前学習部、１３…ラベル付与部、１４…主学習部、１５…微調整部、１６…検索部、２０…記憶部、３１…画像入力部、３２…出力部、３３…通信部、３４…操作入力部、１００…画像検索装置、１１１…入力層、１１２，１１３，１１４，１１５，１１６，１１７…特徴マップ、１１８…出力層、１２１，１２３，１２４，１２５…フィルタ、１２２，１２６…ウィンドウ、１２７…全結合接続
【図１】
2020119508.tif 000003
【図２】
2020119508.tif 000004
【図３】
2020119508.tif 000005
【図４】
2020119508.tif 000006
【図５】
2020119508.tif 000007
【図６】
2020119508.tif 000008
【図７】
2020119508.tif 000009
【図８】
2020119508.tif 000010
【図９】
2020119508.tif 000011
【図１０】
2020119508.tif 000012