(57)【要約】【課題】ニューラルネットワークの開発効率を向上させる情報をユーザに提示する。【解決手段】  プロセッサが、配置されるコンポーネントと、前記コンポーネントに設定されるプロパティと、に基づいて、ニューラルネットワークを構築するプログラムを作成するためのフォームを提供することと、前記ニューラルネットワークに係る統計情報を提示することと、を含む、情報処理方法が提供される。また、配置されるコンポーネントと、前記コンポーネントに設定されるプロパティと、に基づいて、ニューラルネットワークを構築するプログラムを作成するためのフォームを提供するフォーム制御部、を備え、前記フォーム制御部は、前記ニューラルネットワークに係る統計情報を提示する、情報処理装置が提供される。【選択図】図１５
2017138220.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサが、配置されるコンポーネントと、前記コンポーネントに設定されるプロパティと、に基づいて、ニューラルネットワークを構築するプログラムを作成するためのフォームを提供することと、
前記ニューラルネットワークに係る統計情報を提示することと、
を含む、情報処理方法。
【請求項２】
前記統計情報には、前記ニューラルネットワークにおけるアウトプットユニットの数、処理されるパラメータ数、または演算種類ごとの演算量のうち、少なくとも１つが含まれる、
請求項１に記載の情報処理方法。
【請求項３】
前記フォーム上に配置される前記コンポーネント、または前記コンポーネントに設定されるプロパティが変更されたことに基づいて算出される前記統計情報をリアルタイムに提示する、
請求項２に記載の情報処理方法。
【請求項４】
前記統計情報と、前記ニューラルネットワークが実装されるハードウェアのプロファイルと、に基づいて算出される前記ハードウェアにおける前記ニューラルネットワークの実行予測情報を提示すること、
をさらに含む、
請求項３に記載の情報処理方法。
【請求項５】
前記実行予測情報には、前記ニューラルネットワークによる処理の実行時間、メモリ使用量、消費電力、または演算量のうち、少なくとも１つが含まれる、
請求項４に記載の情報処理方法。
【請求項６】
前記統計情報が前記ハードウェアにおける制限情報を逸脱したことに基づいて生成されるアラート情報を提示すること、
をさらに含む、
請求項５に記載の情報処理方法。
【請求項７】
前記統計情報を基に算出される、前記ニューラルネットワークによる処理を実行するためのクラウド上のコンピューティングリソースに係る見積情報を提示すること、
をさらに含む、
請求項２に記載の情報処理方法。
【請求項８】
前記コンピューティングリソースに係る見積情報には、インスタンスのタイプ、前記インスタンスの数、金額、または前記コンピューティングリソース上に実装された前記ニューラルネットワークによる処理時間のうち少なくとも１つが含まれる、
請求項７に記載の情報処理方法。
【請求項９】
前記統計情報の値を変更するユーザの操作を受け付け、当該操作に基づいて変更される前記コンポーネントのプロパティ値と前記コンピューティングリソースに係る見積情報と、をリアルタイムに提示すること、
をさらに含む、
請求項８に記載の情報処理方法。
【請求項１０】
前記コンピューティングリソースに係る見積情報の値を変更するユーザの操作を受け付け、当該操作に基づいて変更される前記コンポーネントのプロパティ値と前記統計情報と、をリアルタイムに提示すること、
をさらに含む、
請求項９に記載の情報処理方法。
【請求項１１】
前記統計情報に含まれる要素を選択するユーザの操作を受け付け、選択された前記要素の値を、前記コンポーネントごとに比較して提示すること、
をさらに含む、
請求項２に記載の情報処理方法。
【請求項１２】
前記コンポーネントごとの前記要素の値と、当該要素の値の大きさを示すインジケータと、を前記フォーム上に配置された前記コンポーネントに関連付けて提示する、
請求項１１に記載の情報処理方法。
【請求項１３】
エミュレータ上における前記ニューラルネットワークの実行結果を提示すること、
をさらに含む、
請求項２に記載の情報処理方法。
【請求項１４】
ハードウェア上における前記ニューラルネットワークの実行結果を提示すること、
をさらに含む、
請求項２に記載の情報処理方法。
【請求項１５】
前記実行結果には、前記ニューラルネットワークによる処理の実行時間、メモリ使用量、消費電力、または演算量のうち、少なくとも１つが含まれる、
請求項１３に記載の情報処理方法。
【請求項１６】
配置されるコンポーネントと、前記コンポーネントに設定されるプロパティと、に基づいて、ニューラルネットワークを構築するプログラムを作成するためのフォームを提供するフォーム制御部、
を備え、
前記フォーム制御部は、前記ニューラルネットワークに係る統計情報を提示する、
情報処理装置。
【請求項１７】
フォーム上に配置されるコンポーネントと、前記コンポーネントに設定されるプロパティと、に基づいて、ニューラルネットワークを構築するプログラムを作成するプログラム作成部、
を備え、
前記プログラム作成部は、前記ニューラルネットワークに係る統計情報を算出する、
情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理方法および情報処理装置に関する。
【背景技術】
【０００２】
近年、脳神経系の仕組みを模したニューラルネットワークが注目されている。他方、ソフトウェア開発においては、プログラミングに係る作業効率を向上させるための種々の方法が提案されている。例えば、特許文献１には、ビジュアルプログラミング言語を利用したソフトウェア生成方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２６８８８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１に記載の方法では、ニューラルネットワークに特有のパラメータや演算に対応することが困難である。【０００５】
そこで、本開示では、ニューラルネットワークの開発効率を向上させる情報をユーザに提示することが可能な情報処理方法および情報処理装置を提案する。
【課題を解決するための手段】
【０００６】
本開示によれば、プロセッサが、配置されるコンポーネントと、前記コンポーネントに設定されるプロパティと、に基づいて、ニューラルネットワークを構築するプログラムを作成するためのフォームを提供することと、前記ニューラルネットワークに係る統計情報を提示することと、を含む、情報処理方法が提供される。【０００７】
また、本開示によれば、配置されるコンポーネントと、前記コンポーネントに設定されるプロパティと、に基づいて、ニューラルネットワークを構築するプログラムを作成するためのフォームを提供するフォーム制御部、を備え、前記フォーム制御部は、前記ニューラルネットワークに係る統計情報を提示する、情報処理装置が提供される。【０００８】
また、本開示によれば、フォーム上に配置されるコンポーネントと、前記コンポーネントに設定されるプロパティと、に基づいて、ニューラルネットワークを構築するプログラムを作成するプログラム作成部、を備え、前記プログラム作成部は、前記ニューラルネットワークに係る統計情報を算出する、情報処理装置が提供される。
【発明の効果】
【０００９】
以上説明したように本開示によれば、ニューラルネットワークの開発効率を向上させる情報をユーザに提示することが可能となる。なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
【図面の簡単な説明】
【００１０】
【図１】本開示に関連技術に係るビジュアルプログラミングを説明するための図である。
【図２】本開示の実施形態に係るシステム構成例を示す図である。
【図３】同実施形態に係る情報処理端末の機能ブロック図である。
【図４】同実施形態に係るサーバの機能ブロック図である。
【図５】同実施形態に係るフォームを説明するための図である。
【図６】同実施形態に係るプロパティの表示例である。
【図７】同実施形態に係る統計情報の表示例である。
【図８】同実施形態に係るレイヤー構成の変更を説明するための図である。
【図９】同実施形態に係る統計情報のリアルタイム更新を説明するための図である。
【図１０】同実施形態に係るＡｆｆｉｎｅレイヤーに特有の演算方法について説明するための図である。
【図１１】同実施形態に係るＣｏｎｖｏｌｕｔｉｏｎレイヤーに特有の演算方法について説明するための図である。
【図１２】同実施形態に係る実行予測情報の表示例である。
【図１３】同実施形態に係る見積情報の表示例である。
【図１４】同実施形態に係るプロパティ、統計上、及び見積情報の連動について説明するための図である。
【図１５】同実施形態に係るレイヤーの比較情報について説明するための図である。
【図１６】同実施形態に係る実行結果の表示例である。
【図１７】本開示に係るハードウェア構成例を示す図である。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１２】
なお、説明は以下の順序で行うものとする。
１．背景
１．１．ニューラルネットワークとは
１．２．ビジュアルプログラミングの概要
２．実施形態
２．１．本開示に係るシステム構成例
２．２．本実施形態に係る情報処理端末
２．３．本実施形態に係るサーバ３０
２．４．本実施形態に係るフォームの説明
２．５．統計情報の算出に係るリアルタイム性
２．６．ハードウェア上での実行予測情報の算出
２．７．クラウドリソースの見積情報の算出
２．８．統計情報、プロパティ、及び見積情報の連動
２．９．レイヤーに係る比較情報の提示
２．１０．ニューラルネットワークに係る実行結果の提示
３．ハードウェア構成例
４．まとめ
【００１３】
＜１．背景＞
＜＜１．１．ニューラルネットワークとは＞＞
ニューラルネットワークとは、人間の脳神経回路を模したモデルであり、人間が持つ学習能力をコンピュータ上で実現しようとする技法である。上述したとおり、ニューラルネットワークは学習能力を有することを特徴の一つとする。ニューラルネットワークでは、シナプスの結合によりネットワークを形成した人工ニューロン（ノード）が、学習によりシナプスの結合強度を変化させることで、問題に対する解決能力を獲得することが可能である。すなわち、ニューラルネットワークは、学習を重ねることで、問題に対する解決ルールを自動的に推論することができる。
【００１４】
ニューラルネットワークによる学習の例としては、画像認識や音声認識が挙げられる。ニューラルネットワークでは、例えば、手書きの数字パターンを繰り返し学習することで、入力される画像情報を、０〜９の数字のいずれかに分類することが可能となる。ニューラルネットワークの有する上記のような学習能力は、人工知能（Ａｒｔｉｆｉｃｉａｌ  Ｉｎｔｅｌｌｉｇｅｎｃｅ）の発展を推し進める鍵としても注目されている。また、ニューラルネットワークが有するパターン認識力は、種々の産業分野における応用が期待される。
【００１５】
本開示に係る情報処理方法および情報処理装置は、上記で説明したようなニューラルネットワークの開発手法に着目して発想されたものであり、ニューラルネッワークのビジュアルプログラミングにおいて、開発効率を向上させることが可能である。
【００１６】
＜＜１．２．ビジュアルプログラミングの概要＞＞
続いて、本開示に係るビジュアルプログラミングについて、概要を説明する。本開示において、ビジュアルプログラミングとは、ソフトウェア開発において、プログラムコードをテキストで記述することなく、視覚的なオブジェクトを用いて作成する手法を指す。ビジュアルプログラミングでは、例えば、ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）上で、オブジェクトを操作することで、プログラムを作成することができる。
【００１７】
図１は、本開示に係るビジュアルプログラミングのイメージ図である。図１には、ＧＵＩ上に配置されたオブジェクト（コンポーネント）を基に生成される生成物が示されている。図１に示す一例では、コンポーネント１〜３が順に処理されるように配置されている。ここで、コンポーネント１〜３は、例えば、データの取り込み、データの処理、データの出力をそれぞれ意味するコンポーネントであってもよい。また、図１に示すように、本開示に係るビジュアルプログラミングでは、ソースコードの他、設定ファイルやＸＭＬファイルなどが生成されてもよい。
【００１８】
以上、本開示に係る背景について説明した。上述したとおり、本開示に係る情報処理方法および情報処理装置は、ニューラルネッワークのビジュアルプログラミングにおいて、開発効率を向上させることを可能とする。以降の実施形態の説明では、本開示に係る情報処理方法および情報処理装置の特徴を挙げながら、当該特徴が奏する効果について述べる。
【００１９】
＜２．実施形態＞
＜＜２．１．本開示に係るシステム構成例＞＞
まず、図２を参照して本開示の実施形態に係る情報処理方法を実施するためのシステム構成例について説明する。図２を参照すると、本実施形態に係る情報処理方法を実施するためのシステムは、情報処理端末１０、サーバ３０、及びデバイス４０を備える。また、情報処理端末１０、サーバ３０、及びデバイス４０は、ネットワーク２０を介して、互いに通信が行えるように接続される。
【００２０】
ここで、本実施形態に係る情報処理端末１０は、ニューラルネットワークのビジュアルプログラミングを行うための情報処理装置である。また、サーバ３０は、情報処理端末１０にビジュアルプログラミングを行うためのフォームを提供し、当該フォーム上に配置されたコンポーネントに基づいてニューラルネットワークに係るプログラムを作成する情報処理装置である。また、デバイス４０は、サーバ３０により作成されたニューラルネットワークのプログラムを実行するハードウェアである。デバイス４０は、例えば、スマートフォン、タブレット、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などであってよい。
【００２１】
また、ネットワーク２０は、インターネット、電話回線網、衛星通信網などの公衆回線網であってもよいし、ＩＰ−ＶＰＮ（Ｉｎｔｅｒｎｔ  Ｐｒｏｔｏｃｏｌ−Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）などの専用回線網を含んでもよい。
【００２２】
本実施形態に係る情報処理方法では、配置されるコンポーネントと、当該コンポーネントに設定されるプロパティと、に基づいて、ニューラルネットワークを構築するプログラムを作成するためのフォームが提供される。また、本実施形態に係る情報処理方法は、上記ニューラルネットワークに係る統計情報（以下、単に、統計情報、とも呼ぶ）を提示すること、を特徴の一つとする。また、統計情報は、コンポーネントや当該コンポーネントに設定されるプロパティが変更されたことに基づいてリアルタイムに算出されてよい。これにより、ユーザは、ニューラルネットワークに係る統計情報をリアルタイムに確認しながら、ビジュアルプログラミングを行うことが可能となる。
【００２３】
＜＜２．２．本実施形態に係る情報処理端末＞＞
次に、本実施形態に係る情報処理端末１０について詳細に説明する。本実施形態に係る情報処理端末１０は、ニューラルネットワークのビジュアルプログラミングに係るフォームをユーザに提供する機能を有する。また、情報処理端末１０は、作成されるニューラルネットワークに係る統計情報をユーザに提示する機能を有する。ニューラルネットワークに係る統計情報には、ニューラルネットワークにおけるアウトプットユニットの数、処理されるパラメータ数、及び演算種類ごとの演算量などが含まれてよい。また、上述したとおり、統計情報は、コンポーネントやプロパティが変更されたことに基づいて、リアルタイムに算出される情報であってよい。
【００２４】
図３を参照すると、本実施形態に係る情報処理端末１０は、表示部１１０、入力部１２０、フォーム制御部１３０、及びサーバ通信部１４０を備える。以下、情報処理端末１０が備える各構成について説明する。
【００２５】
（表示部１１０）
表示部１１０は、情報処理端末１０の各構成により制御される情報を表示する機能を有する。本実施形態においては、特に、ニューラルネットワークのビジュアルプログラミングを行うためのフォームを表示する機能を有してよい。上記の機能は、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイ装置、液晶ディスプレイ（ＬＣＤ：Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）装置、ＯＬＥＤ（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）装置により実現されてもよい。また、表示部１１０は、ユーザからの情報入力を受け付ける入力部としての機能を有してもよい。入力部としての機能は、例えば、タッチパネルにより実現され得る。
【００２６】
（入力部１２０）
入力部１２０は、ユーザからの情報入力を受け付け、情報処理端末１０の各構成に入力情報を引き渡す機能を有する。本実施形態においては、特に、ビジュアルプログラミングに係るフォーム上におけるユーザの操作を受け付け、当該操作に基づく入力情報を後述するフォーム制御部１３０に引き渡す機能を有してよい。上記の機能は、例えば、キーボードやマウスにより実現されてもよい。
【００２７】
（フォーム制御部１３０）
フォーム制御部１３０は、ニューラルネットワークのビジュアルプログラミングに係るフォームを制御する機能を有する。具体的には、フォーム制御部１３０は、入力部１２０から取得する情報に基づいて、フォーム上のコンポーネントや当該コンポーネントの値を制御することができる。また、フォーム制御部１３０は、後述するサーバ通信部１４０を介してサーバ３０から取得する情報に基づいて、表示部１１０に表示させる内容を制御する機能を有する。
【００２８】
（サーバ通信部１４０）
サーバ通信部１４０は、ネットワーク２０を介して、サーバ３０との情報通信を行う機能を有する。具体的には、サーバ通信部１４０は、フォーム制御部１３０の制御に基づいて、上記フォームに係る情報をサーバ３０に送信する。また、サーバ通信部１４０は、サーバ３０から取得した情報をフォーム制御部１３０に引き渡す。
【００２９】
＜＜２．３．本実施形態に係るサーバ３０＞＞
次に、本実施形態に係るサーバ３０について詳細に説明する。本実施形態に係るサーバ３０は、フォーム上に配置されるコンポーネントと、当該コンポーネントに設定されるプロパティと、に基づいて、ニューラルネットワークを構築するプログラムを作成する情報処理装置である。また、サーバ３０は、上記ニューラルネットワークに係る統計情報を算出する機能を有する。さらには、サーバ３０は、作成したニューラルネットワークをエミュレータまたはデバイス４０に実行させることができる。
【００３０】
図４を参照すると、本実施形態に係るサーバ３０は、プログラム作成部３１０、エミュレータ部３２０、及び端末通信部３３０を備える。以下、サーバ３０が備える各構成について説明する。
【００３１】
（プログラム作成部３１０）
プログラム作成部３１０は、後述する端末通信部３３０を介して情報処理端末１０から取得した情報に基づいて、ニューラルネットワークを構築するプログラムを作成する機能を有する。また、プログラム作成部３１０は、情報処理端末１０から取得した情報に基づいて、ニューラルネットワークに係る統計情報をリアルタイムに算出する機能を有する。ここで、情報処理端末１０から取得される情報は、フォーム上に配置されるコンポーネントと、当該コンポーネントに設定されるプロパティに係る情報であってよい。また、上述したとおり、統計情報は、ニューラルネットワークにおけるアウトプットユニットの数、処理されるパラメータ数、及び演算種類ごとの演算量などであってよい。
【００３２】
さらに、本実施形態に係るプログラム作成部３１０は、ハードウェア上でニューラルネットワークによる処理を実行した場合の実行予測情報を算出することができる。プログラム作成部３１０は、統計情報と、予め設定されたハードウェアのプロフィール情報と、に基づいて、実行予測情報を算出することができる。実行予測情報には、ニューラルネットワークによる処理の実行時間、メモリ使用量、消費電力、及び演算量などが含まれてよい。また、実行予測情報は、統計情報の変化に基づいて、リアルタイムに算出される情報であってよい。なお、上記のハードウェアは、ネットワーク２０を介して接続されるデバイス４０とは異なる別のハードウェアであってよい。
【００３３】
さらに、本実施形態に係るプログラム作成部３１０は、作成したニューラルネットワークによる処理を実行するためのクラウド上のコンピューティングリソースに係る見積情報を算出することができる。プログラム作成部３１０は、統計情報と、コンピューティングリソースを提供するクラウドサービスから取得した情報と、に基づいて、見積情報を算出することができる。見積情報には、インスタンスのタイプ、当該インスタンスの数、コンピューティングリソースの金額、及びニューラルネットワークによる処理時間などが含まれてよい。また、見積情報は、統計情報の変化に基づいて、リアルタイムの算出される情報であってよい。
【００３４】
（エミュレータ部３２０）
エミュレータ部３２０は、プログラム作成部３１０が作成したニューラルネットを構築するプログラムをエミュレータ上で実行し、実行結果を取得する機能を有する。エミュレータ部３２０は、上記のニューラルネットワークが実装されるハードウェアに係るエミュレータを複数含んでもよい。また、エミュレータ部３２０は、ネットワーク２０を介してサーバ３０と接続されるエミュレータにプログラムを実行させ、実行結果を取得してもよい。
【００３５】
また、エミュレータ部３２０は、プログラム作成部３１０が作成したプログラムをデバイス４０に実行させ、実行結果を取得する機能を有する。エミュレータまたはデバイス４０上におけるニューラルネットワークの実行結果には、処理の実行時間、メモリ使用量、消費電力、及び演算量などが含まれてよい。
【００３６】
（端末通信部３３０）
端末通信部３３０は、ネットワーク２０を介して、情報処理端末１０及びデバイス４０との情報通信を行う機能を有する。具体的には、端末通信部３３０は、プログラム作成部３１０が算出する情報を情報処理端末１０に送信する。ここで、プログラム作成部３１０が算出する情報には、統計情報、ハードウェア上での実行予測情報、クラウドリソースの見積情報が含まれてよい。また、端末通信部３３０は、エミュレータ部３２０が取得する情報を情報処理端末１０に送信する。ここで、エミュレータ部３２０が取得する情報には、エミュレータまたはハードウェア上におけるニューラルネットワークの実行結果が含まれてよい。
【００３７】
＜＜２．４．本実施形態に係るフォームの説明＞＞
次に、本実施形態に係るビジュアルプログラミングを行うためのフォームについて詳細に説明する。本実施系形態に係るフォームは、情報処理端末１０の表示部１１０に表示されてよい。ユーザは、上記のフォーム上で操作を行うことで、ニューラルネットワークを構築することができる。
【００３８】
図５は、本実施形態に係るフォームの構成例を示す図である。図５を参照すると、本実施形態に係るフォームＦ１は、パレットＰ１〜Ｐ３を含んでいる。ここで、パレットＰ１は、コンポーネントのリストを表示するための領域であってよい。また、パレットＰ２は、コンポーネントを編集しニューラルネットワークを構築するための領域であってよい。また、パレットＰ３は、上記のニューラルネットに係る各種の情報を表示するための領域であってよい。
【００３９】
なお、本実施形態に係るコンポーネントは、それぞれがニューラルネットワークを構成するレイヤーに相当するものである。このため、以降の説明においては、コンポーネントとレイヤーを同一のものとして扱い、レイヤーという名称で統一する。
【００４０】
（パレットＰ１）
上述したとおり、パレットＰ１は、レイヤーのリストを表示するための領域である。図５に示す一例のように、パレットＰ１には、レイヤーが分類ごとに表示されてもよい。また、分類名をクリックすることで、分類ごとのレイヤーの一覧が展開されるよう制御されてもよい。図５を参照すると、パレットＰ１には、入出力層や中間層、活性化関数などに分類されたレイヤーのリストが表示されている。ユーザは、パレットＰ１に表示されるレイヤーをドラッグすることで、該当するレイヤーをパレットＰ２に追加することができる。または、パレットＰ１に表示されるレイヤーを選択することで、該当するレイヤーがパレットＰ２に追加されてもよい。なお、図５や以降の図に示されるレイヤーは、よく知られたものであるため、詳細な説明は省略する。
【００４１】
（パレットＰ２）
パレットＰ２は、レイヤーを編集しニューラルネットワークを構築するための領域である。図５に示す一例では、レイヤーを線でつなぐことで、ニューラルネットワークにおける処理の流れを構築している。ユーザは、レイヤーを移動、追加または削除することで、ニューラルネットワークを視覚的に構築することができる。また、パレットＰ２では、ユーザによって選択されたレイヤーが他のレイヤーとは異なる表示形式で示されてもよい。図５の一例は、レイヤー「Ａｆｆｉｎｅ  ＃２」が選択された状態を示している。
【００４２】
（パレットＰ３）
パレットＰ３は、ニューラルネットに係る各種の情報を表示するための領域である。図５を参照すると、パレットＰ３には、インフォメーションｉ１として、パレットＰ２で選択されたレイヤーに係るプロパティ情報が表示されている。また、パレットＰ３には、インフォメーションｉ２として、パレットＰ２に配置されたレイヤーに基づくニューラルネットワークの統計情報が表示されている。なお、パレットＰ３には、プロパティ情報及び統計情報の他、ハードウェア上での実行予測情報、クラウドリソースの見積情報、エミュレータまたはデバイス４０上での実行結果などが表示されてよい。
【００４３】
（プロパティ情報）
続いて、パレットＰ３に表示されるプロパティ情報について詳細に説明する。図６は、パレットＰ３に表示されるプロパティ情報の一例である。図６には、図５のパレットＰ２において、レイヤー「Ａｆｆｉｎｅ  ＃２」が選択された場合のプロパティ情報の一例を示している。図６を参照すると、プロパティ情報には、レイヤー名称を示す「Ｎａｍｅ」などのレイヤーに係る基本情報の他、レイヤー間の接続状況やレイヤーの特性によって自動算出される情報、及びレイヤー種類ごとに特有の設定値が含まれている。
【００４４】
「Ｉｎｐｕｔ」及び「Ｏｕｔｐｕｔ」は、レイヤーの入出力サイズを示す値である。また、「ＣｏｓｔＡｄｄ」及び「ＣｏｓｔＭｕｌｔｉｐｌｙＡｄｄ」は、レイヤーにおける演算量に係る情報であってよい。また、「ＣｏｓｔＰａｒａｍｅｔｅｒ」は、レイヤーに含まれるパラメータ数（メモリ量）を示す値である。上記に挙げた各項目は、レイヤー間の接続状況や後述する設定値に基づいて自動で算出される項目であってよい。ユーザは、上記の各項目を確認することで、各レイヤーにおけるメモリ量や演算量を、手動で計算することなく把握することができる。なお、「ＣｏｓｔＡｄｄ」及び「ＣｏｓｔＭｕｌｔｉｐｌｙＡｄｄ」の詳細な説明については後述する。
【００４５】
「ＯｕｔＳｈａｐｅ」は、Ａｆｆｉｎｅレイヤーの出力ニューロン数を指定するための項目である。このように、プロパティ情報には、レイヤー種類ごとに特有の設定値が含まれてよい。また、図６の一例には示していないが、レイヤー種類ごとに特有の設定値には、「ＯｕｔＳｈａｐｅ」以外の項目が含まれてもよい。例えば、Ａｆｆｉｎｅレイヤーの場合、プロパティ情報には、バイアス項の有無を指定する項目や重みに関する種々の項目が含まれてよい。上記のような設定値に任意の値を指定することで、各レイヤーにおける処理の詳細を設定することができる。
【００４６】
（統計情報）
続いて、パレットＰ３に表示される統計情報について詳細に説明する。上述したとおり、本実施系形態に係る統計情報は、フォーム上に配置されたレイヤーと、当該レイヤーのプロパティが変更されたことに基づいて、リアルタイムに算出される情報である。また、本実施形態に係る統計情報は、レイヤーごとに算出されたメモリ量や演算量の総和であってよい。
【００４７】
図７は、図５のパレットＰ２上に配置されたレイヤー構成時の統計情報を示す図である。図７を参照すると、統計情報には、「Ｏｕｔｐｕｔ」、「ＣｏｓｔＰａｒａｍｅｔｅｒ」が含まれている。ここで、「Ｏｕｔｐｕｔ」は、ニューラルネットワーク全体に係るアウトプットユニットの総数を示す値であってよい。すなわち、「Ｏｕｔｐｕｔ」は、計算過程で保持される途中計算値（バッファ）の数を意味する。また、「ＣｏｓｔＰａｒａｍｅｔｅｒ」は、ニューラルネットワーク全体に係るパラメータの総数であってよい。
【００４８】
また、統計情報には、「ＣｏｓｔＡｄｄ」、「ＣｏｓｔＭｕｌｔｉｐｌｙ」、「ＣｏｓｔＭｕｌｔｉｐｌｙＡｄｄ」、「ＣｏｓｔＤｉｖｉｓｉｏｎ」、「ＣｏｓｔＥｘｐ」、及び「ＣｏｓｔＩｆ」がさらに含まれている。上記の各項目はニューラルネットワークにより処理される演算種類ごとの演算量の総和を示している。上記の各項目は、それぞれ、加算回数、乗算回数、乗加算回数、除算回数、指数計算回数、または条件分岐判断の回数を示す値であってよい。なお、図７に示す一例においては、「ＣｏｓｔＭｕｌｔｉｐｌｙ」の値が０となっているが、これは、乗算回数を乗加算回数に含んで算出しているためである。
【００４９】
＜＜２．５．統計情報の算出に係るリアルタイム性＞＞
次に、本実施形態の統計情報の算出に係るリアルタイム性について説明する。上述したとおり、本実施形態に係る情報処理方法によれば、レイヤーや当該レイヤーに設定されるプロパティが変更されたことに基づいて、統計情報をリアルタイムに算出することができる。以下、図８及び図９を参照して、本実施形態の統計情報の算出に係るリアルタイム性について説明する。
【００５０】
（レイヤー構成の変更に基づく統計情報の算出）
図８は、パレットＰ２上でニューラルネットワークに係るレイヤーの構成が変更されたことを示す図である。図８に示す一例では、図５に示したレイヤー構成に加え、新たにレイヤー「Ｔａｎｈ  ＃２」及び「Ａｆｆｉｎｅ  ＃３」が追加されている。なお、図８に示すように、パレットＰ２上の各レイヤーは、直線状に配置されなくてもかまわない。
【００５１】
続いて、図９を参照する。図９は、図８に示したレイヤー構成時の統計情報を示す図である。すなわち、図９は、レイヤー構成の変更に基づいて、更新された統計情報を示している。図９を参照すると、統計情報が示す各項目が、図７に示した状態から更新されていることがわかる。具体的には、図９に示す統計情報では、図７に示した統計情報と比較して、「Ｏｕｔｐｕｔ」及び「ＣｏｓｔＰａｒａｍｅｔｅｒ」の値が増加している。また、図９に示す統計情報では、図７に示した統計情報と比較して、「ＣｏｓｔＡｄｄ」、「ＣｏｓｔＭｕｌｔｉｐｌｙＡｄｄ」、「ＣｏｓｔＤｉｖｉｓｉｏｎ」、及び「ＣｏｓｔＥｘｐ」の値がそれぞれ増加している。
【００５２】
以上説明したように、本実施形態に係る情報処理方法では、レイヤーや当該レイヤーに設定されるプロパティが変更されたことに基づいて、統計情報をリアルタイムに算出することができる。すなわち、サーバ３０のプログラム作成部３１０は、情報処理端末１０に表示されるフォーム上でレイヤー構成が変更されたことに基づいて、統計情報をリアルタイムに算出することができる。図８及び図９を用いて説明して例では、プログラム作成部３１０が、フォーム上でレイヤー「Ｔａｎｈ  ＃２」及び「Ａｆｆｉｎｅ  ＃３」が追加されたことに基づいて、統計情報の値を更新している。
【００５３】
なお、上記では、レイヤーを追加する場合を例に説明したが、プログラム作成部３１０は、レイヤーが削除された場合や、レイヤーのプロパティが変更された場合にも統計情報を更新する。例えば、プログラム作成部３１０は、Ａｆｆｉｎｅレイヤーのプロパティにおいて、「ＯｕｔＳｈａｐｅ」の値が変更されたことに基づいて、統計情報を更新できる。プログラム作成部３１０がレイヤー構成の変更に基づいて統計情報をリアルタイムに更新することで、ユーザは、最新の統計情報を確認しながら、ニューラルネットワークのビジュアルプログラミングを行うことが可能となる。
【００５４】
以上、本実施形態に係る統計情報の更新について説明した。上述した通り、本実施形態に係る統計情報は、レイヤーごとに算出されたパラメータ数や演算量の総和である。すなわち、本実施形態に係るプログラム作成部３１０は、レイヤー構成が変更された際、各レイヤーに係るパラメータ数や演算量を再算出することで、統計情報の値を更新することができる。以下、レイヤーにおけるパラメータ数及び演算量の算出方法について例を挙げて説明する。
【００５５】
（Ａｆｆｉｎｅレイヤーに係る算出例）
まず、Ａｆｆｉｎｅレイヤーにおけるパラメータ数の算出方法について説明する。Ａｆｆｉｎｅレイヤーにおけるパラメータ数は、ＩｎｐｕｔとＯｕｔｐｕｔの数、及びバイアス項に基づいて算出されてよい。図１０は、Ａｆｆｉｎｅレイヤーにおけるパラメータ数及び演算量の算出方法を説明するための図である。
【００５６】
図１０の一例では、３つのＩｎｐｕｔ、及び４つのＯｕｔｐｕｔが示されている。また、図１０には重みＷが表記され、本例においては、Ｗ１，１〜Ｗ３，４の重みＷが示されている。すなわち、Ａｆｆｉｎｅレイヤーにおける重みＷの数は、ＩｎｐｕｔとＯｕｔｐｕｔの乗算により算出することができる。このため、Ａｆｆｉｎｅレイヤーにおけるパラメータ数は、下記の数式（１）により算出することができる。数式（１）におけるｂは、バイアス項を示す。また、重みＷは、下記の数式（２）に示す行列によって求めることができる。
【００５７】
【数１】
2017138220.tif 000003
【００５８】
以上、Ａｆｆｉｎｅレイヤーにおけるパラメータ数の算出方法について説明した。なお、Ａｆｆｉｎｅレイヤーにおける演算量についても、上記で示した方法により算出することが可能である。
【００５９】
（Ｃｏｎｖｏｌｕｔｉｏｎレイヤーに係る算出例）
続いて、Ｃｏｎｖｏｌｕｔｉｏｎレイヤーにおけるパラメータ数の算出方法について説明する。Ｃｏｎｖｏｌｕｔｉｏｎレイヤーにおけるパラメータ数及び演算量は、Ｍａｐサイズ、入力Ｍａｐの数、及び出力Ｍａｐの数を基に算出される図１１は、Ｃｏｎｖｏｌｕｔｉｏｎレイヤーにおけるパラメータ数及び演算量の算出方法を説明するための図である。
【００６０】
図１１の一例では、入力マップがＬ、出力ＭａｐがＭとして示されている。また、重みＷは、ａ×ｂ、により算出でき、１回の畳み込み演算量を示す。Ｃｏｎｖｏｌｕｔｉｏｎレイヤーでは、畳み込み演算が、入力Ｍａｐ×出力Ｍａｐ、の数だけ繰り返されるため、Ｏｕｔｐｕｔの値は、ａ×ｂ×Ｌ×Ｍ、により算出することができる。すなわち、Ｃｏｎｖｏｌｕｔｉｏｎレイヤーでは、下記の数式（３）を用いることで、パラメータ数及び演算量を算出することが可能である。
【００６１】
【数２】
2017138220.tif 000004
【００６２】
以上、レイヤーにおけるパラメータ数及び演算量の算出方法について例を挙げて説明した。上記では、ニューラルネットの構成としてよく用いられるＡｆｆｉｎｅレイヤー及びＣｏｎｖｏｌｕｔｉｏｎレイヤーについて説明したが、この他のレイヤーにおいても、レイヤー特有の方法によりパラメータ数及び演算量を算出することが可能である。
【００６３】
上記で説明したように、本実施形態に係る情報処理方法では、レイヤー構成の変更に基づいて、レイヤーごとのパラメータ数及び演算量を再計算することで、ニューラルネットワークに係る統計情報の値を更新することが可能である。
【００６４】
＜＜２．６．ハードウェア上での実行予測情報の算出＞＞
次に、本実施形態に係るハードウェア上での実行予測情報の算出について説明する。本実施形態に係る情報処理方法では、統計情報と、ハードウェアのプロファイルと、に基づいて、当該ハードウェア上におけるニューラルネットワークの実行予測情報を算出することができる。以下、図１２を参照して、上記の機能について詳細に説明する。
【００６５】
図１２は、ハードウェア上におけるニューラルネットワークの実行予測情報の一例を示す図である。本実施形態に係る実行予測情報は、サーバ３０のプログラム作成部３１０が、統計情報と、ハードウェアのプロファイルとを基に算出した値であってよい。なお、ハードウェアのプロファイルには、当該ハードウェアのハードウェア仕様や、ニューラルネットワークの実行に係る制限情報などが含まれてよい。また、本実施形態に係る実行予測情報は、図５に示したフォームＦ１上のパレットＰ３に表示されてよい。
【００６６】
図１２を参照すると、本実施形態に係る実行予測情報には、ニューラルネットワークによる学習時間、メモリ使用量、電力消費量、及び演算量が含まれている。プログラム作成部３１０は、レイヤー構成に基づいて算出される統計情報の更新に応じて、上記の項目をリアルタイムで算出することができる。
【００６７】
また、プログラム作成部３１０は、統計情報がハードウェアのプロファイルに含まれる制限情報の範囲を逸脱したことに基づいて、アラート情報を生成することができる。図１２に示す一例では、統計情報がハードウェアのメモリ使用量に係る制限を逸脱したことに基づいて、プログラム作成部３１０がアラート情報を生成している。また、情報処理端末１０のフォーム制御部１３０は、上記のアラート情報を受信し、当該情報に基づいて、パレットＰ３上に示される実行予測情報の表示形式を制御している。フォーム制御部１３０による表示制御は、例えば図１２に示すように、制限を逸脱した項目の背景を強調するものであってもよい。また、フォーム制御部１３０は、フォーム上にアラートに係るメッセージを表示させてもよい。
【００６８】
上記のように、本実施形態に係る情報処理方法によれば、ハードウェア上におけるニューラルネットワークの実行予測情報を提示することが可能となる。また、本実施形態に係る実行予測情報は、統計情報の更新に基づいて、リアルタイムに算出される情報であってよい。ユーザは、実行予測情報を確認することで、ニューラルネットワークを実装するハードウェアの制限情報を逸脱しないように、ビジュアルプログラミングを行うことができる。
【００６９】
なお、図１２には示していないが、本実施形態に係る実行予測情報は、ハードウェアの制限情報と比較して提示されてもよい。この場合、ユーザは、ハードウェアの制限に係る各項目の上限値を確認しながら、ニューラルネットワークを構築することが可能となる。
【００７０】
＜＜２．７．クラウドリソースの見積情報の算出＞＞
次に、本実施形態に係るクラウドリソースの見積情報の算出について説明する。本実施形態に係る情報処理方法では、統計情報と、クラウドサービスから取得した情報と、に基づいて、ニューラルネットワークによる処理を実行するためのクラウド上のコンピューティングリソースに係る見積情報を算出することができる。また、本実施形態に係る情報処理方法では、算出した上記の見積情報における各項目を変数として扱い、各項目の値を変更することができる。この場合、変更された項目の値に基づいて、他の項目の値が更新されてよい。以下、図１３を参照して、上記の機能について詳細に説明する。
【００７１】
図１３は、ニューラルネットワークによる処理を実行するためのクラウドリソースに係る見積情報の一例を示す図である。本実施形態に係る見積情報は、サーバ３０のプログラム作成部３１０が、統計情報と、クラウドサービスから取得した情報と、を基に算出した値であってよい。なお、クラウドサービスから取得する情報には、提供されるインスタンスの仕様や金額情報が含まれてよい。なお、インスタンスの仕様には、インスタンスに用いられるＧＰＵ（ＧｒａＰｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）や、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの情報が含まれてよい。また、本実施形態に係る見積情報は、図５に示したフォームＦ１上のパレットＰ３に表示されてよい。
【００７２】
図１３を参照すると、本実施形態に係る見積情報には、提供されるインスタンスのタイプ、当該インスタンスの数、金額情報、及びニューラルネットワークによる学習時間が含まれている。プログラム作成部３１０は、レイヤー構成に基づいて算出される統計情報の更新に応じて、上記の項目をリアルタイムで算出することができる。具体的には、本実施形態に係る見積情報は、下記の数式（４）を用いて算出されてよい。
【００７３】
【数３】
2017138220.tif 000005
【００７４】
なお、上記の数式（４）において、ｆ及びｇは任意の関数であってよい。また、ｚはインスタンスタイプを示し、ｙは、インスタンス数、金額、及び学習時間を示す。また、ｘは、統計情報、入力データの数、及び識別問題におけるクラス数を示す。第１項は、Ｃａｔｅｇｏｒｉｃａｌ  ｃｒｏｓｓ  ｅｎｔｒｏｐｙであり、カテゴリ値であるｚに対する誤差関数であってよい。また、第２項は二乗誤差項であり、連続値に対する誤差関数であってよい。なお、識別問題におけるクラス数、関数ｆ及びｇは、ニューラルネットワークによる学習によって求められてよい。
【００７５】
以上、本実施形態に係る見積情報の算出について説明した。続いて、本実施形態に係る見積情報の変更について詳細に説明する。上述したとおり、本実施形態に係る情報処理方法では、算出した見積情報における各項目を変数として扱い、各項目の値を変更することができる。また、見積情報における項目の値が変更された場合、プログラム作成部３１０は、当該項目の値の変更に基づいて、他の項目の値を再計算することができる。例えば、ユーザにより金額の値が変更された場合、プログラム作成部３１０は、見積情報における金額の値が変更されたことに基づいて、インスタンスタイプ、インスタンスの数、及び学習時間の値を再計算する。この際、各項目の値の計算は、下記の数式（５）によって算出されてよい。なお、ユーザが指定した項目については、該当する推定関数の代わりに、ユーザが指定した値が用いられる。
【００７６】
【数４】
2017138220.tif 000006
【００７７】
上記の数式（５）において、ｆ、ｇ及びｈは任意の関数であってよい。また、ｙ１〜ｙ４は、それぞれ、インスタンスタイプ、インスタンス数、金額、及び学習時間を示す。なお、上記の数式（５）において、ｙ、バックスラッシュ、及びｊ（１〜４）で表される値は、当該バックスラッシュに続くｊ番目の目的変数のみを除いたすべてのｙを意味している。これにより、目的変数を説明変数に含むことなく計算を行うことができる。
【００７８】
また、上記の数式（５）において、ｘは、統計情報、入力データの数、及び識別問題におけるクラス数を示す。第１項は、Ｃａｔｅｇｏｒｉｃａｌ  ｃｒｏｓｓ  ｅｎｔｒｏｐｙであり、カテゴリ値であるｙバックスラッシュ１に対する誤差関数であってよい。また、第２項、第３項、及び第４項は二乗誤差項であり、連続値に対する誤差関数であってよい。なお、識別問題におけるクラス数、関数ｆ、ｇ、及びｈは、ニューラルネットワークによる学習によって求められてよい。すなわち、学習によりデータが蓄積することで、上記の数式（５）の精度が向上することが期待される。
【００７９】
上記のように、本実施形態に係る情報処理方法によれば、ニューラルネットワークによる処理を実行するためのクラウド上のコンピューティングリソースに係る見積情報を提示することが可能となる。また、本実施形態に係る見積情報は、統計情報の更新に基づいて、リアルタイムに算出される情報であってよい。さらに、本実施形態に係る情報処理方法では、見積情報に含まれる任意の項目の値が指定されたことに基づいて、当該項目を除く他の項目の値が再計算されて提示されてよい。これにより、ユーザは、クラウドリソースの金額情報と、ニューラルネットワークによる学習時間と、のトレードオフを判断しながら、ビジュアルプログラミングを行うことができる。
【００８０】
＜＜２．８．統計情報、プロパティ、及び見積情報の連動＞＞
次に、本実施形態に係る統計情報、プロパティ、及び見積情報の連動について詳細に説明する。上述したとおり、本実施形態に係る統計情報はレイヤー構成に基づいて算出され、本実施形態に係る見積情報は統計情報に基づいて算出される。一方、本実施形態に係るプロパティに設定される値は、統計情報が変更されたことに基づいて動的に変更されてよい。また、本実施形態に係る統計情報は、見積情報が変更されたことに基づいて、動的に変更されてよい。以下、図１４を参照して、本実施形態に係る上記の機能について詳細に説明する。
【００８１】
図１４は、本実施形態に係るプロパティ、統計情報、及び見積情報の関係を説明するための図である。図１４を参照すると、本実施形態に係る情報処理方法では、プロパティの値が変更されたことに基づいて、統計情報を動的に変更することができる。また、この際、動的に変更された統計情報に基づいて、見積情報がさらに変更されてよい。
【００８２】
さらに、本実施形態に係る情報処理方法では、見積情報が変更されたことに基づいて、統計情報が動的に変更されてもよい。また、この際、動的に変更された統計情報に基づいて、プロパティの値がさらに変更されてもよい。
【００８３】
以下、統計情報の変更に基づいてプロパティの値が変更される場合を例に説明する。この際、統計情報の各項目は変数として扱われ、ユーザにより値が指定されてもよい。また、統計情報の変更に基づくプロパティ値の変更は、各レイヤーの寄与率に応じて、行われてよい。ここでは、Ｉｎｐｕｔ、Ｃｏｎｖｏｌｕｔｉｏｎ、Ａｆｆｉｎｅ、及びＯｕｔｐｕｔの各レイヤーの順に処理が行われるニューラルネットワークを想定して説明する。
【００８４】
上記のレイヤー構成に係るニューラルネットワークにおいて、Ｃｏｎｖｏｌｕｔｉｏｎ、及びＡｆｆｉｎｅレイヤーのパラメータ数が、それぞれ４００及び７８４０である場合、レイヤーの寄与率は、それぞれ、４．８５及び９５．１５として算出され得る。本実施形態に係るプログラム作成部３１０は、上記の方法により算出した寄与率に応じて、変更された統計情報のパラメータ数を、Ｃｏｎｖｏｌｕｔｉｏｎ、及びＡｆｆｉｎｅレイヤーに分配し、各レイヤーの値を動的に変更することができる。
【００８５】
以上説明したように、本実施形態に係る情報処理方法によれば、統計情報、プロパティ、及び見積情報の値を動的に連動させることが可能となる。これにより、ユーザの負担を軽減し、ニューラルネットワークの開発に係る効率をさらに向上させることができる。
【００８６】
＜＜２．９．レイヤーに係る比較情報の提示＞＞
次に、本実施形態のレイヤーに係る比較情報の提示について説明する。本実施形態に係る情報処理方法では、統計情報を構成する各レイヤーの比較情報をユーザに提示することが可能である。情報処理端末１０のフォーム制御部１３０は、サーバ３０から取得した情報を基に、上記の比較情報をフォームに表示させることができる。図１５は、本実施形態に係る比較情報の表示例を示す図である。
【００８７】
図１５の一例は、パレットＰ３上に表示される統計情報Ｉ２において、「ＣｏｓｔＰａｒａｍｅｔｅｒ」が選択された場合を示している。また、図１５を参照すると、パレットＰ２には、レイヤー構成に加え、複数の数値及びバーが表示されている。ここで、数値及びバーは、選択された統計情報の項目に係る各レイヤーの比較情報であってよい。すなわち、図１５では、各レイヤーにおける「ＣｏｓｔＰａｒａｍｅｔｅｒ」の値が数値とバーにより示されている。図１５を参照すると、例えば、「Ｃｏｎｖｏｌｕｔｉｏｎ  ＃１」レイヤーにおける「ＣｏｓｔＰａｒａｍｅｔｅｒ」は４１６であることが分かる。また、Ｃｏｎｖｏｌｕｔｉｏｎ  ＃２」レイヤーにおける「ＣｏｓｔＰａｒａｍｅｔｅｒ」は６４１６であることが分かる。
【００８８】
また、上記の比較情報に含まれるバーは、項目の値の大きさを示すインジケータであってよい。すなわち、比較情報に含まれるバーは、項目の値が大きいほど長く表示されてよい。この際、バーの長さは、値の絶対値により定められてもよいし、各レイヤーにおける値との相対値により定められてもよい。
【００８９】
以上説明したように、本実施形態に係る情報処理方法によれば、統計情報を構成する各レイヤーの比較情報をユーザに提示することが可能となる。これにより、ユーザは、各レイヤーの演算量を直観的に知覚することができ、ニューラルネットワークのレイヤー構成を変更する際などの参考にすることができる。
【００９０】
＜＜２．１０．ニューラルネットワークに係る実行結果の提示＞＞
次に、本実施形態のニューラルネットワークに係る実行結果の提示について説明する。本実施形態に係る情報処理方法では、エミュレータまたはデバイス４０上で実行されたニューラルネットワークの実行結果を取得し、当該実行結果をユーザに提示することが可能である。エミュレータ部３２０は、プログラム作成部３１０が作成したニューラルネットワークに係るプログラムをエミュレータ上で実行し、実行結果を取得することができる。また、エミュレータ部３２０は、プログラム作成部３１０が作成したニューラルネットワークに係るプログラムをデバイス４０に実行させ、実行結果を取得することができる。
【００９１】
図１６は、本実施形態に係る実行結果の一例を示す図である。図１６を参照すると、本実施形態に係る実行結果には、ニューラルネットワークによる学習時間、メモリ使用量、電力消費量、及び演算量が含まれている。なお、本実施形態に係る実行結果は、図５に示したフォームＦ１上のパレットＰ３に表示されてよい。
【００９２】
以上説明したように、本実施形態に係る情報処理方法によれば、エミュレータまたはデバイス４０上で実行されたニューラルネットワークの実行結果をユーザに提示することが可能となる。これにより、ユーザは、作成したニューラルネットワークの実行結果を、開発画面上で確認することが可能となる。
【００９３】
＜３．ハードウェア構成例＞
次に、本開示に係る情報処理端末１０、サーバ３０、及びデバイス４０に共通するハードウェア構成例について説明する。図１７は、本開示に係る情報処理端末１０、サーバ３０、及びデバイス４０のハードウェア構成例を示すブロック図である。図１７を参照すると、情報処理端末１０、サーバ３０、及びデバイス４０は、例えば、ＣＰＵ８７１と、ＲＯＭ８７２と、ＲＡＭ８７３と、ホストバス８７４と、ブリッジ８７５と、外部バス８７６と、インターフェース８７７と、入力部８７８と、出力部８７９と、記憶部８８０と、ドライブ８８１と、接続ポート８８２と、通信部８８３と、を有する。なお、ここで示すハードウェア構成は一例であり、構成要素の一部が省略されてもよい。また、ここで示される構成要素以外の構成要素をさらに含んでもよい。
【００９４】
（ＣＰＵ８７１）
ＣＰＵ８７１は、例えば、演算処理装置又は制御装置として機能し、ＲＯＭ８７２、ＲＡＭ８７３、記憶部８８０、又はリムーバブル記録媒体９０１に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。
【００９５】
（ＲＯＭ８７２、ＲＡＭ８７３）
ＲＯＭ８７２は、ＣＰＵ８７１に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。ＲＡＭ８７３には、例えば、ＣＰＵ８７１に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
【００９６】
（ホストバス８７４、ブリッジ８７５、外部バス８７６、インターフェース８７７）
ＣＰＵ８７１、ＲＯＭ８７２、ＲＡＭ８７３は、例えば、高速なデータ伝送が可能なホストバス８７４を介して相互に接続される。一方、ホストバス８７４は、例えば、ブリッジ８７５を介して比較的データ伝送速度が低速な外部バス８７６に接続される。また、外部バス８７６は、インターフェース８７７を介して種々の構成要素と接続される。
【００９７】
（入力部８７８）
入力部８７８には、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力部８７８としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ（以下、リモコン）が用いられることもある。
【００９８】
（出力部８７９）
出力部８７９には、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、ＬＣＤ、又は有機ＥＬ等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。
【００９９】
（記憶部８８０）
記憶部８８０は、各種のデータを格納するための装置である。記憶部８８０としては、例えば、ハードディスクドライブ（ＨＤＤ）等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。
【０１００】
（ドライブ８８１）
ドライブ８８１は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体９０１に記録された情報を読み出し、又はリムーバブル記録媒体９０１に情報を書き込む装置である。
【０１０１】
（リムーバブル記録媒体９０１）
リムーバブル記録媒体９０１は、例えば、ＤＶＤメディア、Ｂｌｕ−ｒａｙ（登録商標）メディア、ＨＤ  ＤＶＤメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体９０１は、例えば、非接触型ＩＣチップを搭載したＩＣカード、又は電子機器等であってもよい。
【０１０２】
（接続ポート８８２）
接続ポート８８２は、例えば、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ＲＳ−２３２Ｃポート、又は光オーディオ端子等のような外部接続機器９０２を接続するためのポートである。
【０１０３】
（外部接続機器９０２）
外部接続機器９０２は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はＩＣレコーダ等である。
【０１０４】
（通信部８８３）
通信部８８３は、ネットワーク９０３に接続するための通信デバイスであり、例えば、有線又は無線ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、又はＷＵＳＢ（Ｗｉｒｅｌｅｓｓ  ＵＳＢ）用の通信カード、光通信用のルータ、ＡＤＳＬ（Ａｓｙｍｍｅｔｒｉｃ  Ｄｉｇｉｔａｌ  Ｓｕｂｓｃｒｉｂｅｒ  Ｌｉｎｅ）用のルータ、又は各種通信用のモデム等である。
【０１０５】
＜４．まとめ＞
以上説明したように、本開示に係る情報処理方法では、配置されるレイヤーと、当該レイヤーに設定されるプロパティと、に基づいて、ニューラルネットワークを構築するプログラムを作成するためのフォームを提供することができる。また、本開示に係る情報処理方法では、上記ニューラルネットワークに係る統計情報を提示することができる。係る構成によれば、ニューラルネットワークの開発効率を向上させる情報をユーザに提示することが可能となる。
【０１０６】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【０１０７】
例えば、上記実施形態では、サーバ３０が、レイヤー構成の変更に基づいて、統計情報をリアルタイムに算出する場合を例に説明したが、本技術はかかる例に限定されない。例えば、レイヤー構成の変更に基づく統計情報の算出は、情報処理端末１０により実現されてもよい。この場合、情報処理端末１０のフォーム制御部１３０が、レイヤー構成の変更に基づいて、統計情報をリアルタイムに算出することができる。また、統計情報の更新は、必ずしもリアルタイムに行われなくてもよい。例えば、プログラム作成部３１０は、ユーザによりレイヤー構成の編集を確定する処理が行われたことに基づいて、統計情報の更新を行ってもよい。
【０１０８】
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
【０１０９】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）
プロセッサが、配置されるコンポーネントと、前記コンポーネントに設定されるプロパティと、に基づいて、ニューラルネットワークを構築するプログラムを作成するためのフォームを提供することと、
前記ニューラルネットワークに係る統計情報を提示することと、
を含む、情報処理方法。
（２）
前記統計情報には、前記ニューラルネットワークにおけるアウトプットユニットの数、処理されるパラメータ数、または演算種類ごとの演算量のうち、少なくとも１つが含まれる、
前記（１）に記載の情報処理方法。
（３）
前記フォーム上に配置される前記コンポーネント、または前記コンポーネントに設定されるプロパティが変更されたことに基づいて算出される前記統計情報をリアルタイムに提示する、
前記（１）または（２）に記載の情報処理方法。
（４）
前記統計情報と、前記ニューラルネットワークが実装されるハードウェアのプロファイルと、に基づいて算出される前記ハードウェアにおける前記ニューラルネットワークの実行予測情報を提示すること、
をさらに含む、
前記（１）〜（３）のいずれかに記載の情報処理方法。
（５）
前記実行予測情報には、前記ニューラルネットワークによる処理の実行時間、メモリ使用量、消費電力、または演算量のうち、少なくとも１つが含まれる、
前記（４）に記載の情報処理方法。
（６）
前記統計情報が前記ハードウェアにおける制限情報を逸脱したことに基づいて生成されるアラート情報を提示すること、
をさらに含む、
前記（４）または（５）に記載の情報処理方法。
（７）
前記統計情報を基に算出される、前記ニューラルネットワークによる処理を実行するためのクラウド上のコンピューティングリソースに係る見積情報を提示すること、
をさらに含む、
前記（１）〜（６）のいずれかに記載の情報処理方法。
（８）
前記コンピューティングリソースに係る見積情報には、インスタンスのタイプ、前記インスタンスの数、金額、または前記コンピューティングリソース上に実装された前記ニューラルネットワークによる処理時間のうち少なくとも１つが含まれる、
前記（７）に記載の情報処理方法。
（９）
前記統計情報の値を変更するユーザの操作を受け付け、当該操作に基づいて変更される前記コンポーネントのプロパティ値と前記コンピューティングリソースに係る見積情報と、をリアルタイムに提示すること、
をさらに含む、
前記（７）または（８）に記載の情報処理方法。
（１０）
前記コンピューティングリソースに係る見積情報の値を変更するユーザの操作を受け付け、当該操作に基づいて変更される前記コンポーネントのプロパティ値と前記統計情報と、をリアルタイムに提示すること、
をさらに含む、
前記（７）〜（９）のいずれかに記載の情報処理方法。
（１１）
前記統計情報に含まれる要素を選択するユーザの操作を受け付け、選択された前記要素の値を、前記コンポーネントごとに比較して提示すること、
をさらに含む、
前記（１）〜（１０）のいずれかに記載の情報処理方法。
（１２）
前記コンポーネントごとの前記要素の値と、当該要素の値の大きさを示すインジケータと、を前記フォーム上に配置された前記コンポーネントに関連付けて提示する、
前記（１１）に記載の情報処理方法。
（１３）
エミュレータ上における前記ニューラルネットワークの実行結果を提示すること、
をさらに含む、
前記（１）〜（１２）のいずれかに記載の情報処理方法。
（１４）
ハードウェア上における前記ニューラルネットワークの実行結果を提示すること、
をさらに含む、
前記（１）〜（１３）のいずれかに記載の情報処理方法。
（１５）
前記実行結果には、前記ニューラルネットワークによる処理の実行時間、メモリ使用量、消費電力、または演算量のうち、少なくとも１つが含まれる、
前記（１３）または（１４）に記載の情報処理方法。
（１６）
配置されるコンポーネントと、前記コンポーネントに設定されるプロパティと、に基づいて、ニューラルネットワークを構築するプログラムを作成するためのフォームを提供するフォーム制御部、
を備え、
前記フォーム制御部は、前記ニューラルネットワークに係る統計情報を提示する、
情報処理装置。
（１７）
フォーム上に配置されるコンポーネントと、前記コンポーネントに設定されるプロパティと、に基づいて、ニューラルネットワークを構築するプログラムを作成するプログラム作成部、
を備え、
前記プログラム作成部は、前記ニューラルネットワークに係る統計情報を算出する、
情報処理装置。
【符号の説明】
【０１１０】
１０      情報処理端末
１１０    表示部
１２０    入力部
１３０    フォーム制御部
１４０    サーバ通信部
２０      ネットワーク
３０      サーバ
３１０    プログラム作成部
３２０    エミュレータ部
３３０    端末通信部
４０      デバイス
【図１】
2017138220.tif 000007
【図２】
2017138220.tif 000008
【図３】
2017138220.tif 000009
【図４】
2017138220.tif 000010
【図５】
2017138220.tif 000011
【図６】
2017138220.tif 000012
【図７】
2017138220.tif 000013
【図８】
2017138220.tif 000014
【図９】
2017138220.tif 000015
【図１０】
2017138220.tif 000016
【図１１】
2017138220.tif 000017
【図１２】
2017138220.tif 000018
【図１３】
2017138220.tif 000019
【図１４】
2017138220.tif 000020
【図１５】
2017138220.tif 000021
【図１６】
2017138220.tif 000022
【図１７】
2017138220.tif 000023
【国際調査報告】
2017138220.tif 000024
2017138220.tif 000025
2017138220.tif 000026
2017138220.tif 000027