(57)【特許請求の範囲】
【請求項１】
機械学習モデルを、有償又は無償で公開することが可能な機械学習モデル取引サーバと通信可能に接続されるとともに、関数ノードデータベースと通信可能に接続され、一以上のノードの接続と、ノード間のデータの入出力によってニューラルネットワークの機械学習モデルを表す機械学習モデル設計支援装置であって、
前記ノードに対する入力を所定の関数に基づき演算する関数ノードの一覧を取得する関数ノードリスト取得手段と、
前記取得した一覧に含まれる関数ノードを、グラフの一部として配置する関数ノード配置手段と、
前記関数ノード同士を、当該ノード間で入出力されるデータの入出力の関係性を表す有向エッジで接続する関数ノード接続手段と、
前記関数ノード及び有向エッジで形成された有向グラフから、等価な機械学習モデルを生成する機械学習モデル生成手段と、
前記通信可能に接続された機械学習モデル取引サーバに、インターネット経由で有償又は無償で取引される機械学習モデルを送信する機械学習モデル送信手段と、
を備え、前記関数ノードリスト取得手段において、前記関数ノードの一覧は、前記関数ノードデータベースから読み込んだ関数ノードの一覧と、ユーザが新たに関数ノードを定義することで拡張された一覧により構成され、
かつ、前記関数ノードにおいて前記所定の関数が演算に用いられることが、当該関数と対応する記号が当該ノードと関連付けられて表示されることにより表されることを特徴とする機械学習モデル設計支援装置。
【請求項２】
前記関数ノードの配置及び関数ノード同士の接続は、グラフィカル・ユーザ・インターフェース上で、ポインティングデバイスによる操作によって実現されることが可能であることを特徴とする請求項１に記載の機械学習モデル設計支援装置。
【請求項３】
前記生成された機械学習モデルにつき、処理ステップごとに、学習と判別の少なくともいずれかのための演算を実行する段階的演算手段と、
を備えることを特徴とする請求項１又は２のいずれか一項に記載の機械学習モデル設計支援装置。
【請求項４】
前記実行される処理単位ごとの学習又は判別のための演算において、特定の関数ノードと対応するネットワーク上の一以上のニューロンにつき、入出力値と重みの少なくともいずれかを取得するニューロン監視手段と、
を備えることを特徴とする請求項３に記載の機械学習モデル設計支援装置。
【請求項５】
前記実行される処理時間単位ごとの学習又は判別のための演算において、特定の箇所における演算が実行される前又は後のタイミングで演算を一時停止するブレークポイント設定手段と、
を備えることを特徴とする請求項３又は４のいずれか一項に記載の機械学習モデル設計支援装置。
【請求項６】
前記関数ノードとして、エンコーダ、非線形関数、遅延器、加算接点、要素積接点、バイアスありエンコーダ、ランダムエンコーダ、ファイルからの入力、出力の表示を少なくとも含むことを特徴とする請求項１乃至５のいずれか一項に記載の機械学習モデル設計支援装置。
【請求項７】
前記関数ノードとして、オートエンコーダを含むことを特徴とする請求項１乃至６のいずれか一項に記載の機械学習モデル設計支援装置。
【請求項８】
機械学習モデルを、有償又は無償で公開することが可能な機械学習モデル取引サーバと通信可能に接続されるとともに、関数ノードデータベースと通信可能に接続され、一以上のノードの接続と、ノード間のデータの入出力によってニューラルネットワークの機械学習モデルを表す機械学習モデル設計支援装置が実行する機械学習モデル設計支援方法であって、
前記ノードに対する入力を所定の関数に基づき演算する関数ノードの一覧を取得するステップと、
前記取得した一覧に含まれる関数ノードを、グラフの一部として配置するステップと、
前記関数ノード同士を、当該ノード間で入出力されるデータの入出力の関係性を表す有向エッジで接続するステップと、
前記関数ノード及び有向エッジで形成された有向グラフから、等価な機械学習モデルを生成するステップと、
前記通信可能に接続された機械学習モデル取引サーバに、インターネット経由で有償又は無償で取引される機械学習モデルを送信するステップと、
を備え、前記関数ノードの一覧を取得するステップにおいて、当該関数ノードの一覧は、前記関数ノードデータベースから読み込んだ関数ノードの一覧と、ユーザが新たに関数ノードを定義することで拡張された一覧により構成され、
かつ、前記関数ノードにおいて前記所定の関数が演算に用いられることが、当該関数と対応する記号が当該ノードと関連付けられて表示されることにより表されることを特徴とする機械学習モデル設計支援方法。
【請求項９】
機械学習モデルを、有償又は無償で公開することが可能な機械学習モデル取引サーバと通信可能に接続されるとともに、関数ノードデータベースと通信可能に接続され、一以上のノードの接続と、ノード間のデータの入出力によってニューラルネットワークの機械学習モデルを表す機械学習モデル設計支援装置に、
前記ノードに対する入力を所定の関数に基づき演算する関数ノードの一覧を取得するステップ、
前記取得した一覧に含まれる関数ノードを、グラフの一部として配置するステップ、
前記関数ノード同士を、当該ノード間で入出力されるデータの入出力の関係性を表す有向エッジで接続するステップ、
前記関数ノード及び有向エッジで形成された有向グラフから、等価な機械学習モデルを生成するステップ、
前記通信可能に接続された機械学習モデル取引サーバに、インターネット経由で有償又は無償で取引される機械学習モデルを送信するステップ、
を実行させ、前記関数ノードの一覧を取得するステップにおいて、当該関数ノードの一覧は、前記関数ノードデータベースから読み込んだ関数ノードの一覧と、ユーザが新たに関数ノードを定義することで拡張された一覧により構成され、
かつ、前記関数ノードにおいて前記所定の関数が演算に用いられることが、当該関数と対応する記号が当該ノードと関連付けられて表示されることにより表されることを特徴とする機械学習モデル設計支援装置用プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習モデルの設計を支援する機械学習モデル設計支援装置、機械学習モデル設計支援方法、機械学習モデル設計支援装置用プログラムに関する。
【背景技術】
【０００２】
今日、情報技術の発展、普及に伴い、蓄積された膨大なデータを解析する場面が増えている。例えば、ＥＣサイトで他の類似顧客の購入情報から商品のレコメンデーションを行ったり、ウェブページ上の広告で顧客が直前まで見ていた情報に関連した広告を行ったり、といった、データ解析の結果に基づいた最適化を行う例が増えている。
【０００３】
特に近年では、高度な情報解析として機械学習を利用する例が増えている。これは、人工知能技術とともに発達してきた技術であり、莫大なデータを基に学習を行うことで、人間の判断に近い高度な解析を、膨大なデータに対して高速に、画一的な基準を持って行うことを可能とする技術である。
【０００４】
一方で機械学習は、精度を大きく左右する、重要なモデル設計において、その高度さ故に専門家以外によるモデル設計が困難であるという問題がある。
【０００５】
このような課題に対して、ニューラルネットワーク構築方法及びニューラルネットワーク処理装置が公開されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許公開２０１１−５１９６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１によれば、大規模ニューラルネットワークを機能単位のブロックに分けて扱うことで、各ブロックの内部構造とそれら各ブロック間の相互接続関係をブロックダイアグラムデータとして記述し、接続規則には、ニューロン同士の空間的位置関係に基づく接続分布を指定することで、このデータに基づき、各ブロックごとに、ニューロンを生成して所定の座標空間上にランダムに配置し、接続を確率分布に従って生成するニューラルネットワーク接続方法が開示されている。
【０００８】
しかしながら、特許文献１のようなモデルの自動生成は、確率分布に従いある程度のネットワークを構築できるものの、単純で基本的なネットワーク構造しか生成し得ないことに加え、何より肝心な学習モデルについては利用者に委ねられているという課題が残っている。
【０００９】
そこで、本発明の発明者は、ネットワーク内の部分ネットワークについて、その部分ネットワークが果たす役割を関数とみなし、機械学習を関数とその関数同士のデータフローとして表すことで、複雑かつ高度な機械学習モデルを、専門家でなくとも簡単に設計可能とすることが可能であることに着目した。
【００１０】
また、本発明の発明者は、設計の途中でリアルタイムに学習を行い、設計者にフィードバックすることで、設計者が設計したモデルについてすぐに精度を確認できるとともに、モデル上の各部位が精度にどの程度影響を与えているのかを簡単に確認できることに着目した。
【００１１】
また、本発明の発明者は、特にＤｅｅｐＬｅａｒｎｉｎｇと呼ばれる技術分野において本発明を用いることで、入出力データに対しＡｕｔｏＥｎｃｏｄｅｒを利用することが可能となり、設計者が入出力データを加工する必要なく、より容易に機械学習技術を利用できることに着目した。
【００１２】
本発明は、機械学習モデル上の演算を関数の組み合わせとして表し、その関数同士の入出力の関係性を表す有向グラフとして機械学習モデル全体を定義することで、機械学習を視覚的に簡単に設計でき、かつ等価な機械学習モデルを自動的に生成可能な機械学習モデル設計支援装置を提供する。
【課題を解決するための手段】
【００１３】
本発明では、以下のような解決手段を提供する。
【００１４】
第１の特徴に係る発明は、一以上のノードの接続と、ノード間のデータの入出力によって機械学習モデルを表す機械学習モデル設計支援装置であって、
前記ノードに対する入力を所定の関数に基づき演算する関数ノードの一覧を取得する関数ノードリスト取得手段と、
前記取得した一覧に含まれる関数ノードを、グラフの一部として配置する関数ノード配置手段と、
前記関数ノード同士を、当該ノード間で入出力されるデータの入出力の関係性を表す有向エッジで接続する関数ノード接続手段と、
前記関数ノード及び有向エッジで形成された有向グラフから、等価な機械学習モデルを生成する機械学習モデル生成手段と、
を備えることを特徴とする機械学習モデル設計支援装置を提供する。
【００１５】
第１の特徴に係る発明によれば、一以上のノードの接続と、ノード間のデータの入出力によって機械学習モデルを表す機械学習モデル設計支援装置は、前記ノードに対する入力を所定の関数に基づき演算する関数ノードの一覧を取得し、前記取得した一覧に含まれる関数ノードを、グラフの一部として配置し、前記関数ノード同士を、当該ノード間で入出力されるデータの入出力の関係性を表す有向エッジで接続し、前記関数ノード及び有向エッジで形成された有向グラフから、等価な機械学習モデルを生成する。
【００１６】
ここで、第１の特徴に係る発明は機械学習モデル設計支援装置のカテゴリであるが、機械学習モデル設計支援方法、機械学習モデル設計支援装置用プログラムのカテゴリにおいても、同様の作用・効果を発揮する。
【００１７】
第２の特徴にかかる発明は、前記機械学習モデルが、ニューラルネットワークの機械学習モデルであることを特徴とする第１の特徴に係る発明である機械学習モデル設計支援装置を提供する。
【００１８】
第２の特徴にかかる発明によれば、第１の特徴に係る発明である機械学習モデル設計支援装置において、前記機械学習モデルは、ニューラルネットワークの機械学習モデルである。
【００１９】
第３の特徴に係る発明は、前記有向エッジは、前記データの次元数に関わらず、単線で表現可能であることを特徴とする第１又は第２の特徴に係る発明である機械学習モデル設計支援装置を提供する。
【００２０】
第３の特徴に係る発明によれば、第１又は第２の特徴に係る発明である機械学習モデル設計支援装置において、前記有向エッジは、前記データの次元数に関わらず、単線で表現可能である。
【００２１】
第４の特徴にかかる発明は、前記関数ノードにおいて前記所定の関数が演算に用いられることが、当該関数と対応する記号が当該ノードと関連付けられて表示されることにより表されることを特徴とする第１から第３のいずれかの特徴に係る発明である機械学習モデル設計支援装置を提供する。
【００２２】
第４の特徴にかかる発明によれば、第１から第３のいずれかの特徴に係る発明である機械学習モデル設計支援装置において、前記関数ノードにおいて前記所定の関数が演算に用いられることが、当該関数と対応する記号が当該ノードと関連付けられて表示されることにより表される。
【００２３】
第５の特徴にかかる発明は、前記関数ノードと、前記有向エッジのもつパラメータを編集、設定するパラメータ編集手段と、
を備えることを特徴とする第１から第４のいずれかの特徴に係る発明である機械学習モデル設計支援装置を提供する。
【００２４】
第５の特徴にかかる発明によれば、第１から第４のいずれかの特徴に係る発明である機械学習モデル設計支援装置は、前記関数ノードと、前記有向エッジのもつパラメータを編集、設定する。
【００２５】
第６の特徴に係る発明は、前記関数ノードの配置及び関数ノード同士の接続は、グラフィカル・ユーザ・インターフェース上で、ポインティングデバイスによる操作によって実現されることが可能であることを特徴とする第１から第５のいずれかの特徴に係る発明である機械学習モデル設計支援装置を提供する。
【００２６】
第６の特徴に係る発明によれば、第１から第５のいずれかの特徴に係る発明である機械学習モデル設計支援装置において、前記関数ノードの配置及び関数ノード同士の接続は、グラフィカル・ユーザ・インターフェース上で、ポインティングデバイスによる操作によって実現されることが可能である。
【００２７】
第７の特徴に係る発明は、前記生成された機械学習モデルにつき、処理ステップごとに、学習と判別の少なくともいずれかのための演算を実行する段階的演算手段と、
を備えることを特徴とする第１から第６のいずれかの特徴に係る発明である機械学習モデル設計支援装置を提供する。
【００２８】
第７の特徴に係る発明によれば、第１から第６のいずれかの特徴に係る発明である機械学習モデル設計支援装置は、前記生成された機械学習モデルにつき、処理ステップごとに、学習と判別の少なくともいずれかのための演算を実行する。
【００２９】
第８の特徴に係る発明は、前記実行される処理単位ごとの学習又は判別のための演算において、特定の関数ノードと対応するネットワーク上の一以上のニューロンにつき、入出力値と重みの少なくともいずれかを取得するニューロン監視手段と、
を備えることを特徴とする第２から第７のいずれかの特徴に係る発明である機械学習モデル設計支援装置を提供する。
【００３０】
第８の特徴に係る発明によれば、第２から第７のいずれかの特徴に係る発明である機械学習モデル設計支援装置は、前記実行される処理単位ごとの学習又は判別のための演算において、特定の関数ノードと対応するネットワーク上の一以上のニューロンにつき、入出力値と重みの少なくともいずれかを取得する。
【００３１】
第９の特徴に係る発明は、前記実行される処理時間単位ごとの学習又は判別のための演算において、特定の箇所における演算が実行される前又は後のタイミングで演算を一時停止するブレークポイント設定手段と、
を備えることを特徴とする第７又は第８の特徴に係る発明である機械学習モデル設計支援装置を提供する。
【００３２】
第９の特徴に係る発明によれば、第７又は第８の特徴に係る発明である機械学習モデル設計支援装置は、前記実行される処理時間単位ごとの学習又は判別のための演算において、特定の箇所における演算が実行される前又は後のタイミングで演算を一時停止する。
【００３３】
第１０の特徴に係る発明は、前記関数ノードとして、エンコーダ、非線形関数、遅延器、加算接点、要素積接点、バイアスありエンコーダ、ランダムエンコーダ、ファイルからの入力、出力の表示を少なくとも含むことを特徴とする第１から第９のいずれかの特徴に係る発明である機械学習モデル設計支援装置を提供する。
【００３４】
第１０の特徴に係る発明によれば、第１から第９のいずれかの特徴に係る発明である機械学習モデル設計支援装置は、前記関数ノードとして、エンコーダ、非線形関数、遅延器、加算接点、要素積接点、バイアスありエンコーダ、ランダムエンコーダ、ファイルからの入力、出力の表示を少なくとも含む。
【００３５】
第１１の特徴に係る発明によれば、前記関数ノードとして、オートエンコーダを含むことを特徴とする第１から第１０のいずれかの特徴に係る発明である機械学習モデル設計支援装置を提供する。
【００３６】
第１１の特徴に係る発明によれば、第１から第１０のいずれかの特徴に係る発明である機械学習モデル設計支援装置は、前記関数ノードとして、オートエンコーダを含む。
【００３７】
第１２の特徴に係る発明は、一以上のノードの接続と、ノード間のデータの入出力によって機械学習モデルを表す機械学習モデル設計支援方法であって、
前記ノードに対する入力を所定の関数に基づき演算する関数ノードの一覧を取得するステップと、
前記取得した一覧に含まれる関数ノードを、グラフの一部として配置するステップと、
前記関数ノード同士を、当該ノード間で入出力されるデータの入出力の関係性を表す有向エッジで接続するステップと、
前記関数ノード及び有向エッジで形成された有向グラフから、等価な機械学習モデルを生成するステップと、
を備えることを特徴とする機械学習モデル設計支援方法を提供する。
【００３８】
第１３の特徴に係る発明は、一以上のノードの接続と、ノード間のデータの入出力によって機械学習モデルを表す機械学習モデル設計支援装置に、
前記ノードに対する入力を所定の関数に基づき演算する関数ノードの一覧を取得するステップ、
前記取得した一覧に含まれる関数ノードを、グラフの一部として配置するステップ、
前記関数ノード同士を、当該ノード間で入出力されるデータの入出力の関係性を表す有向エッジで接続するステップ、
前記関数ノード及び有向エッジで形成された有向グラフから、等価な機械学習モデルを生成するステップ、
を実行させることを特徴とする機械学習モデル設計支援装置用プログラムを提供する。
【発明の効果】
【００３９】
本発明により、機械学習モデル上の演算を関数の組み合わせとして表し、その関数同士の入出力の関係性を表す有向グラフとして機械学習モデル全体を定義することで、機械学習を視覚的に簡単に設計でき、かつ等価な機械学習モデルを自動的に生成可能な機械学習モデル設計支援装置を提供することが可能となる。
【図面の簡単な説明】
【００４０】
【図１】図１は、機械学習モデル設計支援装置１の概要を表した図である。
【図２】図２は、機械学習モデル設計支援装置１のシステム構成図である。
【図３】図３は、機械学習モデル設計支援装置１の機能ブロック図である。
【図４】図４は、機械学習モデル設計支援装置１が実行する機械学習モデル設計処理のフローチャートである。
【図５】図５は、機械学習モデル設計支援装置１が実行する機械学習モデル検証処理のフローチャートである。
【図６】図６は、関数ノードリストの一例である。
【図７】図７は、機械学習モデル設計支援装置１が表示する画面の一例を表した図である。
【発明を実施するための形態】
【００４１】
以下、本発明を実施するための最良の形態について図を参照しながら説明する。なお、これはあくまでも一例であって、本発明の技術的範囲はこれに限られるものではない。
【００４２】
［機械学習モデル設計支援装置１の概要］
図１は、本発明の好適な実施形態である機械学習モデル設計支援装置１の概要を説明するための図である。図１においては、機械学習モデル設計支援装置１の最も基本的な機能である機械学習モデルの設計機能を利用する際の画面例と、設計したモデルを実際にプログラムから利用可能な形態に変換する際のイメージを模式図として表している。
【００４３】
本発明において、機械学習モデルはデータに対する処理関数と、データの入出力とを、関数と一対一に対応するノード及び向きを持つエッジにより可視化される。ユーザはグラフィカルインターフェースを通じて、容易かつ直観的にそれを編集可能である。このことによって、利用者が機械学習の専門知識を持たない者であっても、また、膨大な設計、実装のコストがかかるような高度な機械学習モデルであっても、容易に実現可能とすることが可能となる。
【００４４】
図１の画面例においては、関数ノード１０１や関数ノード１０７が、データに対する処理を表すノードであって、有向エッジ１０２やラベル付き有向エッジ１０８が、データの入出力を表すエッジである。
【００４５】
関数ノード１０１や関数ノード１０７には、それぞれ関数と対応する記号が記載される。例えば、関数ノード１０１に記載された記号は、双曲線正接関数を表し、関数ノード１０７に記載された記号は、シグモイド関数を表している。
【００４６】
機械学習モデルには、通常モデル全体の入力１０３と、出力１０４とがある。また、有向エッジ１０２を初めとするエッジには矢印で表される向きがあり、データの入出力の関係を表している。なお、モデル上の各要素にはラベル付き有向エッジ１０８のようにラベルを付けることが可能である。
【００４７】
この図を例にとると、入力１０３から入力されたデータは、関数ノード１０１と関数ノード１０７に入力され、各ノードと対応した関数演算の結果が出力として、接点１０５と接点１０６とにそれぞれ出力される。ここで、各有向エッジは単線として表現されているが、ベクトルのような多次元のデータであってよい。
【００４８】
接点１０５と接点１０６は、複数のエッジの出力を結合する点を表している。この図では接点１０５のような黒い接点と、接点１０６のような白い接点とがあるが、それぞれ加算と、要素積を行う接点を表している。
【００４９】
遅延器１０９は、入力されたデータを１ステップ、あるいはｎステップ遅らせて出力する遅延器を表している。このように、計算処理においてステップで表される時系列の概念があるような機械学習モデルのため、機械学習モデル設計支援装置１は、計算処理の結果を確認しながら、１ステップずつ進めるような段階的演算手段を備えている。
【００５０】
なお、モデルを構成するノードやエッジ等の各要素にはパラメータが設定されていて、ユーザによって編集可能である。これらは、演算処理の振る舞いを規定するハイパーパラメータのほか、前述のラベルや、あるいは色、太さ等の可視化を助ける要素であってよい。
【００５１】
以上により、機械学習モデルを容易に可視化、設計することが可能である。このようなグラフ形式で表現された機械学習モデルは、対応する実装と一対一で変換可能である。例えば、ウィンドウ１１２上の変換ボタン１１０を押し下げることで、設計した機械学習モデルが、対応する機械学習の実装１１１に変換され、ファイル等に出力されるような使用例がある。
【００５２】
なお、本発明では、関数ノードとデータの入出力によってグラフ形式で表現可能な全ての機械学習モデルが設計可能であるものの、特に、ニューラルネットワークを初めとして、ボルツマンマシン、隠れマルコフモデル、ベイジアンネットワークといった、演算の多層化が精度に大きく影響を与えるモデルの設計に、より適していると言える。
【００５３】
これらの操作は、カーソル１１３のようなポインティングデバイスを通じて、グラフィカル・ユーザ・インターフェース上で行われることで、設計作業をより直観的かつ容易な操作とすることが可能である。
【００５４】
ところで、そもそも機械学習とは、人間のもつ学習能力と同様の機能を、コンピュータを用いて実現しようとする技術、手法のことを指す。機械学習を実現するにあたり、様々な研究者が様々なモデルを考案し、今も研究が盛んに進められている分野である。先述のニューラルネットワークも、脳内のニューロンを模した機械学習モデルの一つであり、その他にもサポートベクターマシーン、ランダムフォレストといったモデルが利用、研究されている。
【００５５】
その中でも、特に近年注目されている技術の一つに深層学習、ＤｅｅｐＬｅａｒｎｉｎｇと呼ばれる手法がある。ＤｅｅｐＬｅａｒｎｉｎｇはニューラルネットワークを多層化することで精度の向上を実現する手法であるが、一つの大きな特徴にａｕｔｏｅｎｃｏｄｅｒを取り入れていることがある。ａｕｔｏｅｎｃｏｄｅｒは、一言でいえば出力が入力を再現するような学習を行うことで、入力の次元圧縮を行い、特徴を抽出するようなアルゴリズムである。
【００５６】
このａｕｔｏｅｎｃｏｄｅｒを利用することで、多層ニューラルネットワークの学習精度を大きく向上させることができ、結果ＤｅｅｐＬｅａｒｎｉｎｇは種々の学習において既存のモデルを大きく上回る精度を挙げている。本発明においても、ａｕｔｏｅｎｃｏｄｅｒを関数ノードの一つとして表すことで、ＤｅｅｐＬｅａｒｎｉｎｇを設計、実装することが可能である。以上が、機械学習モデル設計支援装置１の概要である。
【００５７】
［機械学習モデル設計支援装置１のシステム構成］
機械学習モデル設計支援装置１のシステム構成図である。機械学習モデル設計支援装置１は、基本的にスタンドアローン形式で稼働することが可能である。機械学習モデル設計支援装置１は、それに加えて、公衆回線網５（インターネット網や第３世代、第４世代通信網など）を介して関数ノードデータベース１５０等を備えたサーバ１００と通信可能に接続されていてよい。
【００５８】
機械学習モデル設計支援装置１は、後述の機能を備える家庭用又は業務用の電化製品である。機械学習モデル設計支援装置１は、例えば、パーソナルコンピュータ、サーバ装置、携帯電話、携帯情報端末に加え、スマートフォン、タブレット端末、ネットブック端末、スレート端末、電子書籍端末、携帯型音楽プレーヤ等の情報家電であってよい。
【００５９】
サーバ１００は、機械学習モデル設計支援装置１のライブラリとして働く一般的なサーバ装置であって、様々な種類の関数ノードを登録した関数ノードデータベース１５０を備えることで、機械学習モデル設計支援装置１の利用者が容易に多様な関数ノードを利用できたり、関数ノードの定義を共通化したりといったことが可能である。
【００６０】
また、サーバ１００は、機械学習モデル設計支援装置１によって設計された機械学習モデルを、有償又は無償で公開することが可能な機能を備えていてよい。それにより、ユーザは他のユーザが設計した機械学習モデルを利用可能となり、技術水準の向上を加速することが可能である。なお、これらのサーバ１００の機能は、本発明の実現には必須の構成ではない。
【００６１】
［各機能の説明］
図３に基づいて、各装置の構成について説明する。
【００６２】
機械学習モデル設計支援装置１は、制御部１１として、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ），ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ），ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）等を備え、通信部１２として、他の機器と通信可能にするためのデバイス、例えば、ＩＥＥＥ８０２．１１に準拠したＷｉＦｉ（Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ）対応デバイスを備える。
【００６３】
また、機械学習モデル設計支援装置１は、入出力部１３として、制御部で制御したデータや画像を出力表示する表示部を備え、かつ、ユーザやサポート者からの入力を受付けるタッチパネルやキーボード、マウス等を備えていてよい。
【００６４】
また、機械学習モデル設計支援装置１は、データやファイルを記憶する記憶部１４として、ハードディスクや半導体メモリ、記録媒体、メモリカード等による、データのストレージ部を備える。
【００６５】
機械学習モデル設計支援装置１において、制御部１１が所定のプログラムを読み込むことで、通信部１２と協働して、関数ノードリスト取得モジュール１５を実現する。また、機械学習モデル設計支援装置１において、制御部１１が所定のプログラムを読み込むことで、入出力部１３と協働して、関数ノード配置モジュール１６、関数ノード接続モジュール１７、パラメータ編集モジュール１８を実現する。また、機械学習モデル設計支援装置１において、制御部１１が所定のプログラムを読み込むことで、記憶部１４と協働して、機械学習モデル生成モジュール１９、段階的演算モジュール２０、ニューロン監視モジュール２１、ブレークポイント設定モジュール２２を実現する。
【００６６】
［機械学習モデル設計処理］
図４は、機械学習モデル設計支援装置１が実行する機械学習モデル設計処理のフローチャートである。上述した各装置のモジュールが行う処理について、本処理にて併せて説明する。
【００６７】
初めに、機械学習モデル設計支援装置１の関数ノードリスト取得モジュール１５は、機械学習モデルの設計に用いる関数ノードの一覧を取得する（ステップＳ１）。関数ノードとは、入力されたデータに適用し演算する関数を一つのノードとして表したものであって、機械学習モデルは複数の関数ノードと、ノード間のデータの入出力の関係性によって表すことができる。
【００６８】
ここで、リストの取得は、予め関数ノードのデータが格納された関数ノードデータベース１５０からインターネット経由で読み込む他、ファイル等から読み込んでもよい。また、ユーザからの入力により、新たな関数ノードを定義することでリストを拡張してもよい。  
【００６９】
図６は、関数ノードの具体例の一例である。図６は基本的に三列で構成されており、左列のテキストボックス６１は関数ノードの名称を、図記号６２は関数ノードを表す図記号を、摘要欄６３は、関数ノードを説明するための摘要をそれぞれ表している。例えば、一般的なエンコーダは、図記号６２で画面上に表され、摘要欄６３の示す数式と同等の処理を行う。
【００７０】
このように、図記号６４は非線形関数を、図記号６５はバイアスありエンコーダを、図記号６６は非線形エンコーダを、図記号６７はオートエンコーダを、それぞれ表す。図６の最下部に記載されたＬｏｎｇ-ｓｈｏｒｔ  ｔｅｒｍ  ｍｅｍｏｒｙ  ｃｅｌｌは、図記号６８と、摘要に替えて等価ネットワーク６９が示されている。なお、Ｌｏｎｇ-ｓｈｏｒｔ  ｔｅｒｍ  ｍｅｍｏｒｙは、値を任意の時間記憶するための関数ノードで、入力ゲート、忘却ゲート、出力ゲートがそれぞれ、入力をいつ記憶すべきか、記憶された値をいつ忘却すべきか、記憶された値をいつ出力すべきかを決定する。この機能は、主として時系列データの学習に用いられる。
【００７１】
なお、上記の関数ノードは例示列挙であり、関数ノードの種類をこれに限るものではない。
【００７２】
次に、関数ノード配置モジュール１６は、前記取得した関数リスト内に定義された関数ノードを配置する（ステップＳ２）。
【００７３】
ここでは、関数ノードを配置する領域を便宜的にキャンバスと呼ぶ。ユーザは、入出力の間でデータに適用したい関数と対応する関数ノードをリストから選択し、ドラッグアンドドロップ等でキャンバスに配置する。ここでは、任意の種類の関数ノードを任意の数配置することが可能であって、キャンバス上に同一種類の関数ノードが複数あってもよい。
【００７４】
次に、関数ノード接続モジュール１７は、前記配置した関数ノード同士を有向エッジで接続する（ステップＳ３）。
【００７５】
接続された関数ノード間は、データの入出力が行われることとなり、入出力の方向はエッジの向きにより決定される。そのため原則的に有向エッジによって関数ノード同士を接続詞、無向エッジは用いない。また、エッジの終端は、関数ノード以外にも、入出力のほか加算又は要素積の演算を行う接点に接続してよい。
【００７６】
続けて、パラメータ編集モジュール１８は、関数ノードやエッジを初めとする機械学習モデルを構成する各要素のパラメータを編集する（ステップＳ４）。
【００７７】
ここでパラメータは、ラベルや色といった見た目に関わるもののほか、いわゆるハイパーパラメータと呼ばれる演算の振る舞いに関するパラメータを含む。具体例として、例えば、単一の関数ノードで表されている関数も、実際には多次元、多層のノードからなるネットワークで構成される場合が多く、そのような入出力データの次元やノードの階層数はパラメータとして編集可能であってよい。
【００７８】
なお、上記の関数ノードの配置、接続及び要素のパラメータ編集は、後述の機械学習モデルの生成よりも前であれば任意のタイミングで繰り返し行ってよい。実際には、パラメータの調整や処理フローは、前もって決め打ちをするのではなく、実際に計算を行いつつ計算結果を参照し調整することが多く、機械学習モデル設計装置１ではそのプロセスを機械学習モデル検証処理として担保している。
【００７９】
［機械学習モデル検証処理］
図５は、機械学習モデル設計支援装置１が実行する機械学習モデル検証処理のフローチャートである。上述した各装置のモジュールが行う処理について、本処理にて併せて説明する。
【００８０】
前述のとおり、機械学習モデルの設計においては、実際に演算や精度検証を行いつつデータフローやパラメータの調整を行うプロセスが不可欠な場合が多い。その際には、全体の精度も重要である一方で、より詳細な各部分の演算結果を容易に参照可能にことで、どの部分が精度の向上又は低下の影響を与えているかを容易に把握することが可能となる。
【００８１】
機械学習モデル設計支援装置１のブレークポイント設定モジュール２２は、特定の処理ステップにおいてブレークポイントを設定することで、その処理ステップが実行される際に演算を一時停止し、その瞬間の各データの値を把握することが可能である（ステップＳ１１）。
【００８２】
更に、段階的演算モジュール２０は先述のブレークポイント、または計算の開始を起点として、処理ステップごとに、段階的に処理を実施しながら、データを追って行くことが可能である（ステップＳ１２）。
【００８３】
実際の利用形態として、ユーザは、任意の場所で止めたいという時と、ある瞬間からの処理を１ステップごとに追って行きたいという場合が多い。前半の、任意の場所で止めるという機能は、ブレークポイントによって実現される。後半の１ステップごとに追って行く状態を、ここでは段階的演算中と呼ぶことにする。
【００８４】
ここで、演算を１ステップ実行した後に、段階的演算中か、ブレークポイントに達した場合（ステップＳ１３：「ＹＥＳ」の場合）、段階的演算モジュール２０は次ステップの処理を行わず、一時停止する。なお、段階的演算中でもなく、ブレークポイントでもない場合は、段階的演算モジュール２０は条件を満たすまで処理ステップを実行し続ける（ステップＳ１３：「ＮＯ」の場合）。
【００８５】
一時停止中は、メモリ上のデータや、各ノードへの入出力が見られてよい。特にニューラルネットワークが用いられている場合では、関数ノードやエッジのみならず、各関数ノードを構成するニューロン一つ一つのレベルで入出力を参照することが可能であってよい（ステップＳ１４）。
【００８６】
ニューロンの監視の結果、またしばらく処理を進めたい場合には、検証を終了せず、段階的演算モジュール２０は演算の実行を再開する（ステップＳ１５：「ＮＯ」の場合）。一方で、ニューロン等の監視を行った結果、検証を終了して構わない場合は、そのまま残りの演算を実装せず機械学習モデル検証処理を終了してよい（ステップＳ１５：「ＹＥＳ」の場合）。また、検証処理の終了は、演算を繰り返し実行している最中でも可能であってよい。
【００８７】
なお、ここで処理ステップと呼んでいるものには意味的に大きく二種類のものがあり、時系列的に同タイミングで実施される処理をひとまとめにした上での時系列的な処理ステップと、データの入出力順に従って演算を実施する上で、時系列的には単一な中での処理を更に細かく分けたステップとの二種類があるが、ここではそのどちらも、ブレークポイントの設定や、段階的実行が行えてよい。
【００８８】
フローチャート上は単純化しているものの、実際には、パラメータの編集、関数ノードの選択や接続の再構成は、これらの値の検証を行いながら繰り返し実施されることが普通である。以上が、機械学習モデル検証処理の手順である。
【００８９】
機械学習モデル設計処理に戻り、上記によって設計された機械学習モデルは、機械学習モデル生成モジュール１９によって、プログラムから実際に利用可能な実装や学習済みモデルとして生成される（ステップＳ６）。その際の処理の実行は、検証処理の実行結果をそのまま引き継いでもよいし、初めから実行してもよい。生成されたモデルは、ファイルとして出力されてもよい。また、生成済みモデルは、インターネット経由で有償、無償を問わず取引されてよい。以上が、機械学習モデル設計処理の手順である。
【００９０】
図７は、機械学習モデル設計支援装置１が表示する画面の一例を表した図である。アプリケーションウィンドウ７１は、ツールボックス７２と作業領域７３を備える。作業領域７３上には設計中の機械学習モデル７４が表示されている。ユーザはツールボックス７２から要素を選択し、作業領域７３上に配置することができる。作業領域７３上の要素７５を選択することで、選択中の要素７５のパラメータ７６が作業領域７３の一部に表示される。パラメータ７６は編集、設定が可能であってよい。
【００９１】
上述した手段、機能は、コンピュータ（ＣＰＵ，情報処理装置，各種端末を含む）が、所定のプログラムを読み込んで、実行することによって実現される。プログラムは、例えば、フレキシブルディスク、ＣＤ（ＣＤ−ＲＯＭなど）、ＤＶＤ（ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭなど）等のコンピュータ読取可能な記録媒体に記録された形態で提供される。この場合、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し記憶して実行する。また、そのプログラムを、例えば、磁気ディスク、光ディスク、光磁気ディスク等の記憶装置（記録媒体）に予め記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしてもよい。
【００９２】
以上、本発明の実施形態について説明したが、本発明は上述したこれらの実施形態に限るものではない。また、本発明の実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本発明の実施形態に記載されたものに限定されるものではない。
【符号の説明】
【００９３】
１  機械学習モデル設計支援装置、５  公衆回線網、１００  サーバ、１５０  関数ノードデータベース
【図１】
0006007430.tif 000002
【図２】
0006007430.tif 000003
【図３】
0006007430.tif 000004
【図４】
0006007430.tif 000005
【図５】
0006007430.tif 000006
【図６】
0006007430.tif 000007
【図７】
0006007430.tif 000008