JPWO2019181137A1 - 情報処理装置および情報処理方法 - Google Patents

情報処理装置および情報処理方法 Download PDF

Info

Publication number
JPWO2019181137A1
JPWO2019181137A1 JP2020507362A JP2020507362A JPWO2019181137A1 JP WO2019181137 A1 JPWO2019181137 A1 JP WO2019181137A1 JP 2020507362 A JP2020507362 A JP 2020507362A JP 2020507362 A JP2020507362 A JP 2020507362A JP WO2019181137 A1 JPWO2019181137 A1 JP WO2019181137A1
Authority
JP
Japan
Prior art keywords
information processing
optimization
user
network structure
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020507362A
Other languages
English (en)
Inventor
和樹 吉山
和樹 吉山
匠 矢島
匠 矢島
亮志 池谷
亮志 池谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Sony Semiconductor Solutions Corp
Original Assignee
Sony Corp
Sony Semiconductor Solutions Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp, Sony Semiconductor Solutions Corp filed Critical Sony Corp
Publication of JPWO2019181137A1 publication Critical patent/JPWO2019181137A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/10Interfaces, programming languages or software development kits, e.g. for simulating neural networks
    • G06N3/105Shells for specifying net layout
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Neurology (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

【課題】ニューラルネットワークのハードウェア化に有用な設計支援を提供する。【解決手段】設計されたニューラルネットワークのネットワーク構造の少なくとも一部をハードウェア処理に最適化した場合の最適化構造に係る情報の提示を制御する制御部、を備える、情報処理装置が提供される。また、プロセッサが、設計されたニューラルネットワークのネットワーク構造の少なくとも一部をハードウェア処理に最適化した場合の最適化構造に係る情報の提示を制御すること、を含む、情報処理方法が提供される。【選択図】図23

Description

本開示は、情報処理装置および情報処理方法に関する。
近年、ニューラルネットワークを利用した種々の機能が開発されている。また、ニューラルネットワークの開発効率を向上させるための種々の手法が提案されている。例えば、非特許文献1には、ニューラルネットワークの開発に利用可能なソフトウェアライブラリに関する情報が開示されている。
Google Research、「TensorFlow: Large-ScaleMachine Learning on Heterogeneous Distributed Systems」、2015年11月9日、[Online]、[平成28年1月12日検索]、インターネット<http://download.tensorflow.org/paper/whitepaper2015.pdf>
ところで、近年では、プロセッサ上でニューラルネットワークをソフトウェアとして動作させるのではなく、ニューラルネットワークをハードウェア化することで、低コストでの高速化を実現する手法も提案されている。しかし、非特許文献1に記載されるソフトウェアライブラリでは、ニューラルネットワークのハードウェア化を考慮した設計支援が十分とはいえない。
そこで、本開示では、ニューラルネットワークのハードウェア化に有用な設計支援を提供することが可能な、新規かつ改良された情報処理装置および情報処理方法を提案する。
本開示によれば、設計されたニューラルネットワークのネットワーク構造の少なくとも一部をハードウェア処理に最適化した場合の最適化構造に係る情報の提示を制御する制御部、を備える、情報処理装置が提供される。
また、本開示によれば、プロセッサが、設計されたニューラルネットワークのネットワーク構造の少なくとも一部をハードウェア処理に最適化した場合の最適化構造に係る情報の提示を制御すること、を含む、情報処理方法が提供される。
以上説明したように本開示によれば、ニューラルネットワークのハードウェア化に有用な設計支援を提供することが可能となる。
なお、上記の効果は必ずしも限定的なものではなく、上記の効果とともに、または上記の効果に代えて、本明細書に示されたいずれかの効果、または本明細書から把握され得る他の効果が奏されてもよい。
本開示の一実施形態に係る情報処理システムの構成例を示すブロック図である。 同実施形態に係る情報処理端末の機能構成例を示すブロック図である。 同実施形態に係る情報処理サーバの機能構成例を示すブロック図である。 同実施形態に係るフォームの表示例を示す図である。 同実施形態に係るネットワーク構造の状態遷移について説明するための図である。 同実施形態に係る除算の排除を目的とした最適化について説明するための図である。 同実施形態に係るシフト演算の適用を目的とした最適化について説明するための図である。 同実施形態に係るシフト演算の適用を目的とした最適化について説明するための図である。 同実施形態に係るシフト演算の適用を目的とした最適化について説明するための図である。 同実施形態に係るシフト演算の適用を目的とした最適化について説明するための図である。 同実施形態に係るシフト演算の適用を目的とした最適化について説明するための図である。 同実施形態に係るシフト演算の適用を目的とした最適化について説明するための図である。 同実施形態に係るブロック構造の共通化について説明するための図である。 同実施形態に係る同一種のレイヤー間に用いられる要素の共通化について説明するための図である。 同実施形態に係る積和演算とBatch Normalizationとに係る演算処理の効率化を目的とした最適化について説明するための図である。 同実施形態に係るバイアスの最適化について説明するための図である。 同実施形態に係るルックアップテーブルの参照を要する非線形関数の排除を目的とした最適化について説明するための図である。 同実施形態に係るパディングの排除を目的とした最適化について説明するための図である。 同実施形態に係るストライドの幅を2以下に抑えることを目的とした最適化について説明するための図である。 同実施形態に係るPooling領域の重複の排除を目的とした最適化について説明するための図である。 同実施形態に係るレイヤー内で用いるカーネルを構造化することを目的とした最適化について説明するための図である。 同実施形態に係るコード記述を行うプログラミングツールにおける最適化構造の情報提示について説明するための図である。 同実施形態に係る最適化構造に係る情報提示の一例を示す図である。 同実施形態に係るユーザが選択したハードウェアの特性やユーザが設定した最適化設定に基づく情報提示について説明するための図である。 本開示の一実施形態に係る情報処理サーバのハードウェア構成例を示す図である。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.実施形態
1.1.概要
1.2.システム構成例
1.3.情報処理端末10の機能構成
1.4.情報処理サーバ20の機能構成
1.5.最適化構造に係る情報提示
1.6.最適化構造に係る情報提示の一例
2.ハードウェア構成例
3.まとめ
<1.実施形態>
<<1.1.概要>>
まず、本開示の一実施形態に係る概要について説明する。上述したように、近年では、ニューラルネットワークの開発効率を向上させるための種々の手法が提案されている。また、一方で、ニューラルネットワークをハードウェア化することで、処理の高速化を実現する手法も提案されている。
しかし、非特許文献1に記載されるソフトウェアライブラリなどでは、一般に、ニューラルネットワークのハードウェア化を考慮した設計支援が十分ではない。このため、ニューラルネットワークをハードウェア化する場合、ソフトウェア設計者が入力データに基づいて、設計、学習、評価を繰り返すことにより構築したニューラルネットワークを、ハードウェア設計者がハードウェア向けに調整する作業が求められる。
ハードウェア設計者は、上記の作業において、入力データとソフトウェア設計者が構築したニューラルネットワークに基づいて、当該ニューラルネットワークのハードウェア向けに調整、学習、評価を繰り返すことにより、ニューラルネットワークのハードウェア化を実現する。
しかし、ハードウェア設計者による上記の調整、学習、評価作業は、多くの時間を必要とする。特に、学習には、1日〜1か月ほどの期間が必要となることから、ハードウェア設計者による上記の作業を効率化する手法が求められていた。
本開示の一実施形態に係る技術思想は、上記の点に着目して発想されたものであり、ニューラルネットワークのハードウェア化に有用な設計支援の提供を可能とする。このために、本開示の一実施形態に係る情報処理方法を実現する情報処理装置は、設計されたニューラルネットワークのネットワーク構造の少なくとも一部をハードウェア処理に最適化した場合の最適化構造に係る情報の提示を制御する制御部を備えることを特徴の一つとする。
すなわち、本開示の一実施形態に係る情報処理装置は、ソフトウェア設計者が予めハードウェアに特化したニューラルネットワークの設計が行えるよう、ネットワーク構造の最適化に係る種々の提案をユーザに対し提示させることができる。
本開示の一実施形態に係る情報処理装置が有する上記の機能によれば、ソフトウェア設計者が、ハードウェア化を考慮したニューラルネットワークの設計を容易に行うことができ、ハードウェア設計者による二度手間を排除し、ニューラルネットワークのハードウェア化作業の効率を大幅に改善することが可能となる。
以下、本開示の一実施形態に係る情報処理装置が有する機能の特徴、および当該特徴により奏される効果について詳細に説明する。
<<1.2.システム構成例>>
次に、本開示の一実施形態に係る情報処理システムの構成例について説明する。図1は、本実施形態に係る情報処理システムの構成例を示すブロック図である。図1を参照すると、本実施形態に係る情報処理システムは、情報処理端末10および情報処理サーバ20を備える。また、情報処理端末10と情報処理サーバ20は、互いに通信が行えるように、ネットワーク30を介して接続される。
(情報処理端末10)
本実施形態に係る情報処理端末10は、ニューラルネットワークのプログラミングを行うためのクライアント端末である。本実施形態に係る情報処理端末10は、情報処理サーバ20による制御に基づいて、プログラミングを行うためのフォームを表示し、当該フォームに対するユーザの入力操作に係る情報を情報処理サーバ20へ送信する。本実施形態に係る情報処理端末10は、例えば、PC(Personal Computer)などであってよい。なお、後述するように、本実施形態に係る情報処理端末10は、情報処理サーバ20と同等の機能を有する情報処理装置として機能してもよい。
(情報処理サーバ20)
本実施形態に係る情報処理サーバ20は、本実施形態に係る情報処理方法を実現する情報処理装置である。本実施形態に係る情報処理サーバ20は、ニューラルネットワークをハードウェア処理に最適化した場合の最適化構造に係る情報の提示を制御する。本実施形態に係る情報処理サーバ20は、例えば、情報処理端末10から入力されたネットワーク構造の少なくとも一部に基づいて、上記の最適化構造に係る情報を情報処理端末10に送信する。
(ネットワーク30)
ネットワーク30は、情報処理端末10と情報処理サーバ20とを接続する機能を有する。ネットワーク30は、インターネット、電話回線網、衛星通信網などの公衆回線網や、Ethernet(登録商標)を含む各種のLAN(Local Area Network)、WAN(Wide Area Network)などを含んでもよい。また、ネットワーク30は、IP−VPN(Internet Protocol−Virtual Private Network)などの専用回線網を含んでもよい。また、ネットワーク30は、Wi−Fi(登録商標)、Bluetooth(登録商標)など無線通信網を含んでもよい。
以上、本開示の一実施形態に係る情報処理システムの構成例について説明した。なお、図1を用いて説明した上記の構成はあくまで一例であり、本実施形態に係る情報処理システムの構成は係る例に限定されない。本実施形態に係る情報処理システムの構成は、仕様や運用に応じて柔軟に変形可能である。
<<1.3.情報処理端末10の機能構成>>
次に、本開示の一実施形態に係る情報処理端末10の機能構成例について説明する。図2は、本実施形態に係る情報処理端末10の機能構成例を示すブロック図である。図2を参照すると、本実施形態に係る情報処理端末10は、表示部110、入力部120、制御部130、およびサーバ通信部140を備える。
(表示部110)
本実施形態に係る表示部110は、画像やテキストなどの視覚情報を出力する機能を有する。本実施形態に係る表示部110は、例えば、情報処理サーバ20による制御に基づいて、ニューラルネットワークのビジュアルプログラミングに係るフォームを表示する。
このために、本実施形態に係る表示部110は、視覚情報を提示する表示デバイスなどを備える。上記の表示デバイスには、例えば、液晶ディスプレイ(LCD:Liquid Crystal Display)装置、OLED(Organic Light Emitting Diode)装置、タッチパネルなどが挙げられる。また、本実施形態に係る表示部110は、プロジェクション機能により視覚情報を出力してもよい。
(入力部120)
本実施形態に係る入力部120は、ユーザによる入力操作を検出する機能を有する。本実施形態に係る入力部120は、例えば、フォーム上におけるコンポーネントやユニットの配置操作を検出する。このために、本実施形態に係る入力部120は、キーボード、タッチパネル、マウス、各種のボタンなどを備える。
(制御部130)
本実施形態に係る制御部130は、情報処理端末10が備える各構成を制御する機能を有する。制御部130は、例えば、各構成の起動や停止を制御する。また、制御部130は、情報処理サーバ20により生成される制御信号を表示部110に入力する。また、本実施形態に係る制御部130は、後述する情報処理サーバ20のフォーム制御部210と同等の機能を有してもよい。
(サーバ通信部140)
本実施形態に係るサーバ通信部140は、ネットワーク30を介して情報処理サーバ20との情報通信を行う機能を有する。具体的には、サーバ通信部140は、情報処理サーバ20からフォーム制御に係る制御信号を受信する。また、サーバ通信部140は、入力部120が検出したユーザの入力操作に係る情報を、情報処理サーバ20に送信する。
以上、本開示の一実施形態に係る情報処理端末10の機能構成例について説明した。なお、図2を用いて説明した上記の構成はあくまで一例であり、本実施形態に係る情報処理端末10の機能構成は係る例に限定されない。例えば、上述したように、本実施形態に係る制御部130は、情報処理サーバ20のフォーム制御部210と同等の機能を有してもよい。本実施形態に係る情報処理端末10の機能構成は、仕様や運用に応じて柔軟に変形可能である。
<<1.4.情報処理サーバ20の機能構成>>
次に、本開示の一実施形態に係る情報処理サーバ20の機能構成について説明する。図3は、本実施形態に係る情報処理サーバ20の機能構成例を示すブロック図である。図3を参照すると、本実施形態に係る情報処理サーバ20は、フォーム制御部210、生成部220、および端末通信部230を備える。
(フォーム制御部210)
本実施形態に係るフォーム制御部210は、設計されたニューラルネットワークのネットワーク構造の少なくとも一部をハードウェア処理に最適化した場合の最適化構造に係る情報の提示を制御する制御部として動作する。
本実施形態に係る最適化構造に係る情報は、例えば、現状のネットワーク構造と最適化後のネットワーク構造との差分に係る情報を含んでよい。フォーム制御部210は、例えば、現状のネットワーク構造の一部のレイヤーを最適化した場合における、置換後のレイヤー情報などをユーザに提案してもよい。
また、この際、本実施形態に係るフォーム制御部210は、最適化を行うべき理由を上記の差分に係る情報と共にユーザに対し提示させることで、ニューラルネットワークのハードウェア化を考慮した設計に関するユーザの知見を向上させることが可能である。
また、本実施形態に係る最適化構造に係る情報は、最適化されたネットワーク構造自体であってもよい。この場合、フォーム制御部210は、入力されたネットワーク構造に対し、当該ネットワーク構造をハードウェア向けに最適化したネットワーク構造をユーザに対し提示させることが可能である。この際、実際の最適化処理は、生成部220により実行されてもよい。
以上、本実施形態に係るフォーム制御部210が有する機能の概要について説明した。本実施形態に係るフォーム制御部210が有する機能の詳細については別途後述する。
(生成部220)
本実施形態に係る生成部220は、フォーム制御部210が制御するフォームにおいて入力された情報に基づいて、ニューラルネットワークに係るソースコードを生成する機能を有する。また、本実施形態に係る生成部220は、入力されたネットワーク構造を、ハードウェア処理向けに最適化する機能を有する。
(端末通信部230)
本実施形態に係る端末通信部230は、ネットワーク30を介して、情報処理端末10との情報通信を行う。具体的には、端末通信部230は、フォーム制御部210が生成する最適化構造に係る情報や、フォーム制御に係る制御信号を情報処理端末10に送信する。また、端末通信部230は、情報処理端末10から、フォーム上におけるユーザの入力操作に係る情報などを受信する。
以上、本開示の一実施形態に係る情報処理サーバ20の機能構成例について説明した。なお、図3を用いて説明した上記の構成はあくまで一例であり、本実施形態に係る情報処理サーバ20の機能構成は係る例に限定されない。例えば、上記に示した構成は、複数の装置により分散されて実現されてもよい。また、上述したように、フォーム制御部210が有する機能は、情報処理端末10の制御部130の機能として実現されてもよい。本実施形態に係る情報処理サーバ20の機能構成は、仕様や運用に応じて柔軟に変形可能である。
<<1.5.最適化構造に係る情報提示>>
次に、本実施形態に係る最適化構造に係る情報提示の制御について詳細に説明する。なお、以下では、本開示に係る制御部の一例であるフォーム制御部210が、ニューラルネットワークの設計に用いられるプログラミングツール上で、最適化構造に係る情報を提示させる場合を例に述べる。一方、本実施形態に係る制御部は、例えば、入力されるネットワーク構造に対し、最適化構造に係る情報を出力するバッチプログラムの一部として機能してもよい。
また、以下における説明では、本実施形態に係るフォーム制御部210が、ニューラルネットワークのビジュアルプログラミングを実現するツールにおいて、ユーザがビジュアルプログラミングを実行するフォームの制御を行う場合を主な例として述べる。
ここで、ビジュアルプログラミングとは、ソフトウェア開発において、プログラムコードをテキストで記述することなく、視覚的なオブジェクトを用いて作成する手法を指す。ビジュアルプログラミングでは、例えば、GUI(Graphical User Interface)上で、オブジェクトを操作することで、プログラムを作成することができる。
ここで、本実施形態に係るフォーム制御部210が制御するフォームの表示例について説明する。図4は、本実施形態に係るフォームの表示例を示す図である。図4に示すように、本実施形態に係るフォームF1は、例えば、ペインP1〜P3を含む。
ペインP1は、ネットワークを構成するためのレイヤーのリストを表示するための領域であってよい。ペインP1には、図4に示すように、各種のレイヤーが分類ごとに表示されてもよい。また、分類名をクリックすることで、分類ごとのレイヤーの一覧が展開されるよう制御されてもよい。また、ペインP1には、選択したレイヤーのプロパティ情報LPが表示される。ユーザは、プロパティ情報LPを編集することで、例えば、レイヤーの出力サイズや、カーネルシェイプ、バイアスの有無などを設定することが可能である。
ペインP2は、レイヤーを配置し、ニューラルネットワークを構築するための領域である。ユーザは、各レイヤーを移動、追加または削除することで、ニューラルネットワークを視覚的に構築することができる。図4に示す一例の場合、ペインP2には、レイヤーL1〜L13から構成されるネットワーク構造が視覚的に示されている。ユーザは、例えば、ペインP1に表示されるコンポーネントをドラッグ&ドロップすることで、任意のコンポーネントをペインP2に追加することができる。
ペインP3は、構築中のニューラルネットワークに関する各種の情報を表示する領域である。ペインP3には、例えば、ネットワーク構造の全体像を示すオーバービューOVや、ニューラルネットワークに係る統計情報STなどが表示されてよい。
なお、本実施形態に係る統計情報STには、例えば、出力サイズ、パラメータの使用メモリ量、および各種の演算量などの情報が含まれる。また、本実施形態に係るフォーム制御部210は、統計情報STが含む上記のような要素のうち、ユーザが選択した要素の値を、レイヤーごとに比較して提示する機能を有してよい。この際、本実施形態に係るフォーム制御部210は、例えば、レイヤーごとの要素の値と当該要素の値の大きさを示すインジケータとを、各レイヤーに関連付けて提示してもよい。
図4に示す一例の場合、フォーム制御部210は、ユーザが出力サイズを選択したことに基づいて、レイヤーごとに出力サイズの値と当該値に対応するインジケータを表示させている。本実施形態に係るフォーム制御部210が有する上記の機能によれば、ユーザが、各レイヤーの出力サイズや演算量を直観的に知覚することができ、ネットワーク構造を変更する際などの参考にすることができる。
以上、本実施形態に係るフォームの表示例について説明した。続いて、本実施形態に係るネットワーク構造の状態遷移について説明する。図5は、本実施形態に係るネットワーク構造の状態遷移について説明するための図である。
図5の左側には、本実施形態の最適化構造に係る情報の提示機能をONにした場合の状態遷移が、図5の右側には、上記提示機能をOFFにした場合の状態遷移がそれぞれ示されている。
なお、図5における「NN」は、ニューラルネットワークを示し、また「NN」は、ハードウェア向けに最適化されておらず、最適化構造に係る情報提示が成されている(提案または警告などが表示されている)状態のニューラルネットワークを示す。
最適化構造に係る情報の提示機能が有効となっている場合、まず、ユーザによりレイヤーが追加されることで、ネットワーク構造の構築が開始される。この後、ユーザは、レイヤーの追加、変更、削除などを繰り返し行う。この際、上記のような操作により、ネットワークがハードウェア向けに最適化されていない状態「NN」となったことが生成部220により検知されると、フォーム制御部210による制御により最適化構造に係る情報提示が動的に実行される。
その後、ユーザが、さらにレイヤーの追加、変更、削除などを繰り返すことで、「NN」と「NN」を行き来しながらネットワークの構築が完遂される。
一方、最適化構造に係る情報の提示機能が無効となっている場合、ネットワークがハードウェア向けに最適化されていない場合であっても、「NN」は、「NN」には遷移せず、すなわち最適化構造に係る情報の提示が行われないまま、ネットワークの構築が完遂される。
以上、本実施形態に係るネットワーク構造の状態遷移について説明した。なお、最適化構造に係る情報の提示機能は、プログラミングの実行中であっても、任意のタイミングで有効または無効に切り替えることが可能である。ユーザは、例えば、プログラミング中には、上記の提示機能を無効にし、プログラミングが完了した時点で、例えば、チェックボタンを押下することなどにより提示機能を有効化することで、最適化構造に係る情報を享受することが可能である。
次に、本実施形態に係るハードウェア処理に向けた最適化について、具体例を挙げながら説明する。本実施形態に係るフォーム制御部210は、ハードウェア処理に向けた種々の最適化に係る情報提示を制御することが可能である。
例えば、本実施形態に係る最適化は、除算の排除を目的としたネットワーク構造の変更を含んでよい。図6は、本実施形態に係る除算の排除を目的とした最適化について説明するための図である。図6の左側には、ユーザにより設計されたネットワーク構造が、図6の右側には、ハードウェア向けに最適化された後のネットワーク構造がそれぞれ示されている。
ここで両者を比較すると、設計時のネットワーク構成に含まれていた「AveragePooling」が、最適化後には、「SumPooling」に変化している。このように、本実施形態に係るフォーム制御部210は、演算コストが高い除算を用いる「AveragePooling」に代えて、除算を用いない「SumPooling」を利用するよう、ユーザに提案を行うことが可能である。
また、本実施形態に係る最適化は、シフト演算の適用を目的としたネットワーク構造の変更を含んでよい。図7〜図12は、本実施形態に係るシフト演算の適用を目的とした最適化について説明するための図である。図7〜図12の左側には、ユーザにより設計されたネットワーク構造が、図7〜図12の右側には、ハードウェア向けに最適化された後のネットワーク構造がそれぞれ示されている。
例えば、図7に示す一例の場合、設計時のネットワーク構成における「AveragePooling」の出力サイズが「64,6,6」であるのに対し、最適化後には、「64,8,8」に変化している。これは、「AveragePooling」の出力サイズが2のべき乗ではない場合、シフト演算が行えないためである。このため、本実施形態に係るフォーム制御部210は、除算に比べ演算コストが低いシフト演算が行えるように、「AveragePooling」の出力サイズを2のべき乗にするよう、ユーザに提案してよい。上記出力サイズの変更は、例えば、前段の「Convolution」レイヤーのpaddingを調整することなどにより可能である。
また、図8に示す一例の場合、設計時のネットワーク構成における「RDivScalar」の値が「6」であるのに対し、最適化後には、「8」に変化している。これは、除算に用いる値を2のべき乗とすることで、シフト演算を適用するためである。このため、本実施形態に係るフォーム制御部210は、除算に比べ演算コストが低いシフト演算が行えるように、Divisionの値を2のべき乗にするよう、ユーザに提案してよい。
また、図9に示す一例の場合、設計時のネットワーク構成における「RDivScalar」の値が「255」であるのに対し、最適化後には、「256」に変化している。多くの場合、画像の正規化では、「0〜255」の分布を用いることが一般的であるが、「255」は2のべき乗ではないため、シフト演算を行うことができない。このため、本実施形態に係るフォーム制御部210は、「255」に代え、2のべき乗である「256」を用いることで、演算コストを削減するよう、ユーザに提案してよい。なお、画像の正規化に「0〜256」の分布を用いても学習における影響はほぼないことが実験的に知られている。
また、図10に示す一例の場合、設計時のネットワーク構成における「Convolution_2」の出力サイズが「70,32,32」であるのに対し、最適化後には、「62,32,32」に変化している。これは、メモリアライメントを2のべき乗に揃えるためであり、warpが32であることから出力サイズも32の倍数に最適化されている。このように、本実施形態に係るフォーム制御部210は、メモリアライメントが2のべき乗となるように、「Convolution」などの出力サイズを変更するよう、ユーザに提案してもよい。
また、図11に示す一例の場合、設計時のネットワーク構成における各「Convolution」が、最適化後には、「Pow2Convolution」に変化している。ここで、「Pow2Convolution」とは、2のべき乗で量子化した重みやバイアスなどを用いて内積演算を行う「Convolution」である。係るレイヤーによれば、内積演算をシフト演算および加算のみで行うことが可能となり、演算コストを大幅に低減することが可能である。このように、本実施形態に係るフォーム制御部210は、通常の積和演算レイヤーに代えて、「Pow2Convolution」などの量子化レイヤーを利用するよう、ユーザに提案してもよい。なお、量子化の手法は上記の例に限定されず、BinaryやFixed Pointが用いられてもよい。
また、図12に示す一例の場合、設計時のネットワーク構成における各「BatchNormalization」が、最適化後には、「Pow2BatchNormalization」に変化している。ここで、「Pow2BatchNormalization」とは、2のべき乗で表現される値を用いて正規化の演算を行う「BatchNormalization」である。係るレイヤーによれば、通常floatで行う処理をシフト演算で実現することが可能となり、演算コストを効果的に削減することが可能である。このため、本実施形態に係るフォーム制御部210は、通常の「BatchNormalization」に代えて、「Pow2BatchNormalization」を利用するよう、ユーザに提案してもよい。
以上、本実施形態に係るシフト演算の適用を目的とした最適化について説明した。次に、本実施形態に係るブロック構造の共通化について述べる。図13は、本実施形態に係るブロック構造の共通化について説明するための図である。図13の左側には、ユーザにより設計されたネットワーク構造が、図13の右側には、ハードウェア向けに最適化された後のネットワーク構造がそれぞれ示されている。
図13を参照すると、設計時のネットワーク構成には、「Convolution」、「BatchNormalization」、「ReLU」、「MaxPooling」の順に接続されるレイヤー構成が2つ含まれている。本実施形態では、上記のような同一のレイヤーを同一の順に含む構成をブロックと定義する。すなわち、図13に示す一例では、設計時のネットワーク構成は、2つのブロックB1およびB2を含んで構成されている。
一方、ブロックB1とB2とでは、「Convolution」に係るカーネルシェイプが異なっているため、入出力サイズがそれぞれ異なっている状態である。この場合、レイヤー構成が同一であっても、同一の演算回路を共通して用いることができない。
このため、本実施形態に係るフォーム制御部210は、ブロックB1およびB2が共通の演算回路を共通して用いることができるように、「Convolution」のカーネルシェイプを「3,3」に共通化し、入出力サイズが同一となるよう、ユーザに提案してよい。係る最適化によれば、演算回路を共通化し、ハードウェア回路の面積を節約することが可能となる。
また、本実施形態に係る最適化には、ブロックの他、ネットワーク構造中に複数含まれる同一種のレイヤー間で、パラメータを共通化する変更が含まれてよい。上記変更には、例えば、同一種のレイヤー間で、フィルタサイズ、出力サイズなどを共通化する変更が含まれる。
図14は、本実施形態に係る同一種のレイヤー間に用いられる要素の共通化について説明するための図である。図14の左側には、ユーザにより設計されたネットワーク構造が、図14の右側には、ハードウェア向けに最適化された後のネットワーク構造がそれぞれ示されている。
図14を参照すると、設計時のネットワーク構造には、3つの「Convolution」が含まれているが、出力サイズやカーネルシェイプが共通していないことがわかる。この場合、本実施形態に係る本実施形態に係るフォーム制御部210は、3つの「Convolution」が共通のパラメータを用いるようにユーザに提案してよい。図14に示す一例の場合、フォーム制御部210は、3つの「Convolution」で出力サイズおよびフィルタサイズ(カーネルシェイプ)を共通化するよう提案している。
この際、上記の共通化を実現するために、最適化後のネットワーク構造では、「MaxPooling」が削除されている。このように、本実施形態に係る共通要素を用いる最適化では、レイヤーの削除、挿入、置換、順番の変更などが提案されてもよい。また、上記で述べたブロックは、少なくとも1つ以上のレイヤーを含んで構成される、と定義してもよい。この場合、図14に示す3つの「Convolution」は、ブロックであるともいえる。
本実施形態に係る上記の最適化によれば、ブロックやレイヤー間で用いるパラメータなどを共通化することで、ネットワークが用いるパラメータ数を削減し、メモリロードの電力消費を効果的に低減することが可能となる。
次に、本実施形態に係る積和演算とBatch Normalizationとに係る演算処理の効率化を目的とした最適化について説明する。本実施形態に係る最適化は、上記の演算処理の効率化を目的とするネットワーク構造の変更を含んでよい。図15は、本実施形態に係る積和演算とBatch Normalizationとに係る演算処理の効率化を目的とした最適化について説明するための図である。図15の左側には、ユーザにより設計されたネットワーク構造が、図15の右側には、ハードウェア向けに最適化された後のネットワーク構造がそれぞれ示されている。
図15を参照すると、設計時のネットワーク構造では、「Convolution_2」と「BatchNormalization_2」の間に、「MaxPooling」が配置されている。しかし、学習後、「BatchNormalization」レイヤーのパラメータは、積和演算レイヤーのパラメータにマージすることが可能である。
このため、本実施形態に係るフォーム制御部210は、積和演算レイヤーの直後に「BatchNormalization」レイヤーが配置されるよう提案を行ってよい。図15に示す一例の場合、フォーム制御部210は、両者の間に配置される「Convolution_2」と「MaxPooling」の順序を入れ替えるようにユーザに提案を行うことができる。
また、積和演算レイヤーの直後に「BatchNormalization」レイヤーが配置されるように、バイアスが連続するレイヤー構成が存在する場合、本実施形態に係るフォーム制御部210は、後段に配置されるレイヤーでのみバイアスを付けるよう提案を行ってもよい。
図16は、本実施形態に係るバイアスの最適化について説明するための図である。図16の左側には、図15に示す設計時のネットワーク構造における「Convolution_2」のプロパティ情報LP1bが、図16の右側には、図15に示す最適化後のネットワーク構造における「Convolution_2」のプロパティ情報LP1aが、それぞれ示されている。
ここで、両者を比較すると、最適化後のプロパティ情報LP1bでは、バイアスの設定が「False」に変化していることがわかる。このように、本実施形態に係るフォーム制御部210は、後段に配置されるレイヤーでのみバイアスを付けるよう提案することで、不必要な演算コストの増大を防止することができる。
また、本実施形態に係る最適化は、ルックアップテーブルの参照を要する非線形関数の排除を目的としたネットワーク構造の変更を含んでよい。図17は、本実施形態に係るルックアップテーブルの参照を要する非線形関数の排除を目的とした最適化について説明するための図である。図17の左側には、ユーザにより設計されたネットワーク構造が、図17の右側には、ハードウェア向けに最適化された後のネットワーク構造がそれぞれ示されている。
ここで両者を比較すると、設計時のネットワーク構成に含まれていた「Tanh」や「Sigmoid」が、最適化後には、「ReLU」に変化している。このように、本実施形態に係るフォーム制御部210は、ルックアップテーブルの参照を要する非線形関数に代えて、「ReLU」などの線形関数を利用するよう、ユーザに提案を行うことが可能である。係る制御によれば、不要なメモリ消費や電力消費を効果的に低減することが可能となる。
また、本実施形態に係る最適化は、パディングの排除を目的としたネットワーク構造の変更を含んでよい。図18は、本実施形態に係るパディングの排除を目的とした最適化について説明するための図である。図18の左側には、設計時のネットワーク構造に含まれる「Convolution」のプロパティ情報LP2bが、図18の右側には、最適化後のネットワーク構造に含まれる「Convolution」のプロパティ情報LP2aが、それぞれ示されている。
ここで両者を比較すると、最適化後のネットワークでは、パディングが行われないよう設定が変更されている。このように、本実施形態に係るフォーム制御部210は、ハードウェアにとって非効率な処理であるパディングを行わないよう、ユーザに提案することで、処理効率を向上させることが可能である。
また、本実施形態に係る最適化は、ストライドの幅を2以下に抑えることを目的としたネットワーク構造の変更を含んでよい。図19は、本実施形態に係るストライドの幅を2以下に抑えることを目的とした最適化について説明するための図である。図19の左側には、設計時のネットワーク構造に含まれる「Convolution」のプロパティ情報LP3bが、図19の右側には、最適化後のネットワーク構造に含まれる「Convolution」のプロパティ情報LP3aが、それぞれ示されている。
ここで両者を比較すると、最適化後のネットワークでは、ストライドが「2,2」が変更されている。このように、本実施形態に係るフォーム制御部210は、ストライドによる処理負担が過度に増加しないように、ユーザに提案することで、処理効率を向上させることが可能である。
また、本実施形態に係る最適化は、Pooling領域の重複の排除を目的としたネットワーク構造の変更を含んでよい。図20は、本実施形態に係るPooling領域の重複の排除を目的とした最適化について説明するための図である。図20の左側には、設計時のネットワーク構造に含まれる「MaxPooling」のプロパティ情報LP4bが、図20の右側には、最適化後のネットワーク構造に含まれる「MaxPooling」のプロパティ情報LP4aが、それぞれ示されている。
ここで両者を比較すると、最適化後のネットワークでは、カーネルシェイプとストライドの値が「2,2」に共通化されており、Pooling領域が重複しないように変更されていることがわかる。ストライドを行う場合には、一度読み込んだデータを保持しておくか、あるいは再度読み込みを行う必要がある。このため、Pooling領域が重複しないように最適化することにより、保持するデータ分のメモリが削減したり、データへのアクセス回数を削減することが可能となる。
また、本実施形態に係る最適化は、レイヤー内で用いるカーネルを構造化することを目的としたネットワーク構造の変化を含む。図21は、本実施形態に係るレイヤー内で用いるカーネルを構造化することを目的とした最適化について説明するための図である。図21の上段には、設計時におけるカーネルの一例が、図21の下段には、最適化後のカーネルの一例がそれぞれ示されている。
ハードウェアにおいてConvolutionの演算を行う際には、図示するように奥行方向に部分的にカーネルKをSRAMに読み込む処理が行われる。なお、図21では、Kがカーネルの高さを、Kがカーネルの幅をそれぞれ示している。また、Nは、入力される特徴マップの奥行方向の長さを、Mが出力される特徴マップをそれぞれ示している。
この際、図21の上段に示すように、カーネルK1〜K5の構造が共通化されていない場合、SRAMにカーネルを読み込む回数が増加するのに対し、図21の下段に示すように、カーネルK1〜K4の構造が共通化されている場合、SRAMにカーネルを読み込む回数を削減することが可能である。
以上、本実施形態に係る最適化について具体例を挙げながら説明した。なお、上記では、本実施形態に係るフォーム制御部210が、ニューラルネットワークのビジュアルプログラミングを実現するフォームを提供する場合について述べた。一方、本実施形態に係るプログラミングツールは、係る例に限定されない。本実施形態に係るフォーム制御部210は、通常のコード記述を行うプログラミングツールにおいて、最適化構造に係る情報の提示を制御してもよい。
図22は、本実施形態に係る通常のコード記述を行うプログラミングツールにおける最適化構造の情報提示について説明するための図である。図22の上段には、設計時のコードの一例が、図22の下段には、最適化後のコードの一例がそれぞれ示されている。
ここで、両者を比較すると、最適化後のコードにおいては、画像の正規化において、「256」を用いたシフト演算が行われるよう変化している。また、「Convolution」および「Affine」が、量子化レイヤーにそれぞれ変化していることがわかる。また、「AveragePoolig」が除算を必要としない「SumPooling」に変化していることがわかる。
このように、本実施形態に係る情報処理サーバ20によれば、プログラミングの種類を問わず、ニューラルネットワークのハードウェア化に有用な設計支援を提供することが可能である。
<<1.6.最適化構造に係る情報提示の一例>>
次に、本実施形態に係る最適化構造に係る情報提示の一例について述べる。上述したように、本実施形態に係るフォーム制御部210は、種々の最適化に係る情報をユーザに提案することで、ユーザがハードウェアに最適化したニューラルネットワークの設計を行えるよう補助することができる。
この際、フォーム制御部210は、例えば、ユーザの設定に基づいて、情報の提示有無を制御してもよい。図23は、本実施形態に係る最適化構造に係る情報提示の一例を示す図である。
例えば、図23には、ペインP2において右クリックをした場合に表示されるウィンドウW1が示されている。ウィンドウW1には、機能F1およびF2を含む複数の機能を実行または制御するためのリストが表示されてよい。
ここで、機能F1は、最適化構造に係る情報提示の要否をユーザが設定するための機能であってよい。図23に示す一例の場合、機能F1に対応する「HW affinity」には、機能が有効であることを示すチェックが入っている。
この場合、フォーム制御部210は、ユーザによるプログラミングの実行中に、生成部最適化が可能なネットワーク構造が生成部220により検出された際、例えば、図23に示すようなメッセージMsgを表示させることで、ユーザに最適化構造に係る情報提示を行う。なお、上記のような情報提示は、音声により実現されてもよい。また、メッセージMsgは、例えば、アイコンIにマウスオンした場合にのみ表示されるよう制御されてもよい。
なお、フォーム制御部210は、上記のような情報提示に対し、ユーザが承認を行った場合、生成部220により最適化されたネットワークをユーザに対し提示させる。すなわち、フォーム制御部210は、最適化されたネットワーク構造を、作成中のネットワーク構成に反映してよい。なお、ユーザの承認は、例えば、ボタンの押下や、音声などを用いて行われてよい。
また、上記のような最適化されたネットワーク構造の反映は、情報提示なしに自動的に実行されてもよい。上記のような自動反映は、ユーザによる設定により実行され得る。
また、機能F2は、機能F1による情報提示の要否設定に依らずに、最適化構造に係る情報提示を即時実行させるための機能であってよい。例えば、ユーザは、機能F1により動的な情報提示を無効に設定している場合でも、プログラミング完了後など任意のタイミングで機能F2に対応する「Redundancy check」をクリックすることで、最適化構造に係る情報提示を享受することができる。
また、本実施形態に係るフォーム制御部210は、ハードウェアに適さないプログラミングが行えないようにフォームの制御を行うことも可能である。図23に示す一例の場合、フォーム制御部210は、ペインP1において、除算が必要となる「AveragePooling」をそもそもユーザが配置できないように制御している。本実施形態に係るフォーム制御部210が有する上記の機能によれば、ハードウェアに適さない設計をユーザが行えないようコントロールすることも可能である。
また、本実施形態に係るフォーム制御部210は、ユーザが選択したハードウェアの特性や、ユーザが設定した最適化設定に基づいて、最適化を行った場合の最適化構造に係る情報をユーザに対し提示させることも可能である。
図24は、本実施形態に係るユーザが選択したハードウェアの特性やユーザが設定した最適化設定に基づく情報提示について説明するための図である。
図24には、図23に示したウィンドウW1を含むメニューの階層構造の一例が示されている。ユーザは、例えば、機能F1に対応する「HW affinity」にマウスオンすることで、ウィンドウW2を表示させることができる。
ここで、ウィンドウW2は、最適化構造に係る情報提示を行うためのハードウェア種別を選択するためのウィンドウであってよい。図24に示す一例の場合、ウィンドウW2には、「General」、「DSP」、「FPGA」、「ASIC」などのハードウェア種別が一覧で表示されている。ユーザは、上記のようなハードウェア種別から、ハードウェア化を行う対象となるハードウェア種別を選択することで、当該ハードウェア種別に特化して設定された最適化構造の情報を享受することができる。
また、ウィンドウW2には、ユーザが、情報提示を受ける最適化手法を選択するためのメニュー「Custom」が表示されている。ユーザは、メニュー「Custom」にマウスオンすることで、有効化する最適化手法を選択するためのウィンドウW3を表示させることができる。なお、図24に示される「Feature 1」〜「Feature n」は、図6〜図21を用いて説明した各種の最適化手法に対応する項目であってよい。
このように、本実施形態に係る情報処理サーバ20によれば、ユーザが選択したハードウェアの特性や、ユーザが設定した最適化設定に基づいて、より有効な情報提示を実現することが可能である。
<2.ハードウェア構成例>
次に、本開示の一実施形態に係る情報処理サーバ20のハードウェア構成例について説明する。図25は、本開示の一実施形態に係る情報処理サーバ20のハードウェア構成例を示すブロック図である。図25を参照すると、情報処理サーバ20は、例えば、プロセッサ871と、ROM872と、RAM873と、ホストバス874と、ブリッジ875と、外部バス876と、インターフェース877と、入力装置878と、出力装置879と、ストレージ880と、ドライブ881と、接続ポート882と、通信装置883と、を有する。なお、ここで示すハードウェア構成は一例であり、構成要素の一部が省略されてもよい。また、ここで示される構成要素以外の構成要素をさらに含んでもよい。
(プロセッサ871)
プロセッサ871は、例えば、演算処理装置又は制御装置として機能し、ROM872、RAM873、ストレージ880、又はリムーバブル記録媒体901に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。
(ROM872、RAM873)
ROM872は、プロセッサ871に読み込まれるプログラムや演算に用いるデータ等を格納する手段である。RAM873には、例えば、プロセッサ871に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等が一時的又は永続的に格納される。
(ホストバス874、ブリッジ875、外部バス876、インターフェース877)
プロセッサ871、ROM872、RAM873は、例えば、高速なデータ伝送が可能なホストバス874を介して相互に接続される。一方、ホストバス874は、例えば、ブリッジ875を介して比較的データ伝送速度が低速な外部バス876に接続される。また、外部バス876は、インターフェース877を介して種々の構成要素と接続される。
(入力装置878)
入力装置878には、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等が用いられる。さらに、入力装置878としては、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントローラ(以下、リモコン)が用いられることもある。また、入力装置878には、マイクロフォンなどの音声入力装置が含まれる。
(出力装置879)
出力装置879は、例えば、CRT(Cathode Ray Tube)、LCD、又は有機EL等のディスプレイ装置、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置である。また、本開示に係る出力装置879は、触覚刺激を出力することが可能な種々の振動デバイスを含む。
(ストレージ880)
ストレージ880は、各種のデータを格納するための装置である。ストレージ880としては、例えば、ハードディスクドライブ(HDD)等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等が用いられる。
(ドライブ881)
ドライブ881は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体901に記録された情報を読み出し、又はリムーバブル記録媒体901に情報を書き込む装置である。
(リムーバブル記録媒体901)
リムーバブル記録媒体901は、例えば、DVDメディア、Blu−ray(登録商標)メディア、HD DVDメディア、各種の半導体記憶メディア等である。もちろん、リムーバブル記録媒体901は、例えば、非接触型ICチップを搭載したICカード、又は電子機器等であってもよい。
(接続ポート882)
接続ポート882は、例えば、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)、RS−232Cポート、又は光オーディオ端子等のような外部接続機器902を接続するためのポートである。
(外部接続機器902)
外部接続機器902は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はICレコーダ等である。
(通信装置883)
通信装置883は、ネットワークに接続するための通信デバイスであり、例えば、有線又は無線LAN、Bluetooth(登録商標)、又はWUSB(Wireless USB)用の通信カード、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、又は各種通信用のモデム等である。
<3.まとめ>
以上説明したように、本開示の一実施形態に係る情報処理サーバ20は、設計されたニューラルネットワークのネットワーク構造の少なくとも一部をハードウェア処理に最適化した場合の最適化構造に係る情報の提示を制御するフォーム制御部210を備える。係る構成によれば、ニューラルネットワークのハードウェア化に有用な設計支援を提供することが可能となる。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
また、コンピュータに内蔵されるCPU、ROMおよびRAMなどのハードウェアに、情報処理サーバ20が有する構成と同等の機能を発揮させるためのプログラムも作成可能であり、当該プログラムを記録した、コンピュータに読み取り可能な記録媒体も提供され得る。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
設計されたニューラルネットワークのネットワーク構造の少なくとも一部をハードウェア処理に最適化した場合の最適化構造に係る情報の提示を制御する制御部、
を備える、
情報処理装置。
(2)
前記最適化構造に係る情報は、現状のネットワーク構造と最適化後のネットワーク構造との差分に係る情報を含み、
前記制御部は、前記差分に係る情報をユーザに対し提示させる、
前記(1)に記載の情報処理装置。
(3)
前記最適化構造に係る情報は、前記最適化を行うべき理由を含み、
前記制御部は、前記最適化を行うべき理由をユーザに対し提示させる、
前記(1)または(2)に記載の情報処理装置。
(4)
前記最適化構造に係る情報は、最適化されたネットワーク構造を含み、
前記制御部は、前記最適化されたネットワーク構造をユーザに対し提示させる、
前記(1)〜(3)のいずれかに記載の情報処理装置。
(5)
前記制御部は、ニューラルネットワークの設計に用いられるプログラミングツール上で、前記最適化構造に係る情報を提示させる、
前記(1)〜(4)のいずれかに記載の情報処理装置。
(6)
前記制御部は、ユーザによるプログラミングの実行中に、前記最適化構造に係る情報を前記ユーザに対し動的に提示させる、
前記(5)に記載の情報処理装置。
(7)
前記制御部は、前記ユーザによるプログラミングの実行中に、前記最適化が可能なネットワーク構造が検出された場合に、前記最適化構造に係る情報を前記ユーザに対し動的に提示させる、
前記(6)に記載の情報処理装置。
(8)
前記制御部は、前記最適化構造に係る情報を確認したユーザの承認に基づいて、最適化されたネットワーク構造を前記ユーザに対し提示させる、
前記(5)〜(7)のいずれかに記載の情報処理装置。
(9)
前記制御部は、ユーザが選択したハードウェアの特性に基づいて前記最適化を行った場合の前記最適化構造に係る情報を前記ユーザに対し提示させる、
前記(5)〜(8)のいずれかに記載の情報処理装置。
(10)
前記制御部は、ユーザが設定した最適化設定に基づいて前記最適化を行った場合の前記最適化構造に係る情報を前記ユーザに対し提示させる、
前記(5)〜(9)のいずれかに記載の情報処理装置。
(11)
前記制御部は、前記ハードウェア処理に適さないプログラミングが行えないように前記プログラミングツールを制御する、
前記(5)〜(10)のいずれかに記載の情報処理装置。
(12)
前記最適化は、除算の排除を目的としたネットワーク構造の変更を含む、
前記(1)〜(11)のいずれかに記載の情報処理装置。
(13)
前記最適化は、シフト演算の適用を目的としたネットワーク構造の変更を含む、
前記(1)〜(12)のいずれかに記載の情報処理装置。
(14)
前記最適化は、前記ネットワーク構造中に複数含まれるブロックに関し、前記ブロック間で入力サイズおよび出力サイズを共通化することを目的としたネットワーク構造の変更を含み、
前記ブロックは、少なくとも1つ以上のレイヤーを含んで構成される、
前記(1)〜(13)のいずれかに記載の情報処理装置。
(15)
前記最適化は、前記ブロックに係る処理を実行する演算回路の共通化を目的としたネットワーク構造の変更を含む、
前記(14)に記載の情報処理装置。
(16)
前記最適化は、前記ネットワーク構造中に複数含まれる同一種のレイヤー間で、パラメータを共通化することを目的としたネットワーク構造の変更を含む、
前記(1)〜(15)のいずれかに記載の情報処理装置。
(17)
前記最適化は、前記ネットワーク構造中に複数含まれる同一種のレイヤー間で、フィルタまたは出力サイズを共通化することを目的としたネットワーク構造の変更を含む、
前記(1)〜(16)のいずれかに記載の情報処理装置。
(18)
前記最適化は、積和演算とBatch Normalizationとに係る演算処理の効率化を目的としたネットワーク構造の変更を含む、
前記(1)〜(17)のいずれかに記載の情報処理装置。
(19)
前記最適化は、ルックアップテーブルの参照を要する非線形関数の排除を目的としたネットワーク構造の変更を含む、
前記(1)〜(18)のいずれかに記載の情報処理装置。
(20)
プロセッサが、設計されたニューラルネットワークのネットワーク構造の少なくとも一部をハードウェア処理に最適化した場合の最適化構造に係る情報の提示を制御すること、
を含む、
情報処理方法。
10 情報処理端末
110 表示部
120 入力部
130 制御部
140 サーバ通信部
20 情報処理サーバ
210 フォーム制御部
220 生成部
230 端末通信部

Claims (20)

  1. 設計されたニューラルネットワークのネットワーク構造の少なくとも一部をハードウェア処理に最適化した場合の最適化構造に係る情報の提示を制御する制御部、
    を備える、
    情報処理装置。
  2. 前記最適化構造に係る情報は、現状のネットワーク構造と最適化後のネットワーク構造との差分に係る情報を含み、
    前記制御部は、前記差分に係る情報をユーザに対し提示させる、
    請求項1に記載の情報処理装置。
  3. 前記最適化構造に係る情報は、前記最適化を行うべき理由を含み、
    前記制御部は、前記最適化を行うべき理由をユーザに対し提示させる、
    請求項1に記載の情報処理装置。
  4. 前記最適化構造に係る情報は、最適化されたネットワーク構造を含み、
    前記制御部は、前記最適化されたネットワーク構造をユーザに対し提示させる、
    請求項1に記載の情報処理装置。
  5. 前記制御部は、ニューラルネットワークの設計に用いられるプログラミングツール上で、前記最適化構造に係る情報を提示させる、
    請求項1に記載の情報処理装置。
  6. 前記制御部は、ユーザによるプログラミングの実行中に、前記最適化構造に係る情報を前記ユーザに対し動的に提示させる、
    請求項5に記載の情報処理装置。
  7. 前記制御部は、前記ユーザによるプログラミングの実行中に、前記最適化が可能なネットワーク構造が検出された場合に、前記最適化構造に係る情報を前記ユーザに対し動的に提示させる、
    請求項6に記載の情報処理装置。
  8. 前記制御部は、前記最適化構造に係る情報を確認したユーザの承認に基づいて、最適化されたネットワーク構造を前記ユーザに対し提示させる、
    請求項5に記載の情報処理装置。
  9. 前記制御部は、ユーザが選択したハードウェアの特性に基づいて前記最適化を行った場合の前記最適化構造に係る情報を前記ユーザに対し提示させる、
    請求項5に記載の情報処理装置。
  10. 前記制御部は、ユーザが設定した最適化設定に基づいて前記最適化を行った場合の前記最適化構造に係る情報を前記ユーザに対し提示させる、
    請求項5に記載の情報処理装置。
  11. 前記制御部は、前記ハードウェア処理に適さないプログラミングが行えないように前記プログラミングツールを制御する、
    請求項5に記載の情報処理装置。
  12. 前記最適化は、除算の排除を目的としたネットワーク構造の変更を含む、
    請求項1に記載の情報処理装置。
  13. 前記最適化は、シフト演算の適用を目的としたネットワーク構造の変更を含む、
    請求項1に記載の情報処理装置。
  14. 前記最適化は、前記ネットワーク構造中に複数含まれるブロックに関し、前記ブロック間で入力サイズおよび出力サイズを共通化することを目的としたネットワーク構造の変更を含み、
    前記ブロックは、少なくとも1つ以上のレイヤーを含んで構成される、
    請求項1に記載の情報処理装置。
  15. 前記最適化は、前記ブロックに係る処理を実行する演算回路の共通化を目的としたネットワーク構造の変更を含む、
    請求項14に記載の情報処理装置。
  16. 前記最適化は、前記ネットワーク構造中に複数含まれる同一種のレイヤー間で、パラメータを共通化することを目的としたネットワーク構造の変更を含む、
    請求項1に記載の情報処理装置。
  17. 前記最適化は、前記ネットワーク構造中に複数含まれる同一種のレイヤー間で、フィルタまたは出力サイズを共通化することを目的としたネットワーク構造の変更を含む、
    請求項1に記載の情報処理装置。
  18. 前記最適化は、積和演算とBatch Normalizationとに係る演算処理の効率化を目的としたネットワーク構造の変更を含む、
    請求項1に記載の情報処理装置。
  19. 前記最適化は、ルックアップテーブルの参照を要する非線形関数の排除を目的としたネットワーク構造の変更を含む、
    請求項1に記載の情報処理装置。
  20. プロセッサが、設計されたニューラルネットワークのネットワーク構造の少なくとも一部をハードウェア処理に最適化した場合の最適化構造に係る情報の提示を制御すること、
    を含む、
    情報処理方法。
JP2020507362A 2018-03-23 2018-12-27 情報処理装置および情報処理方法 Pending JPWO2019181137A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2018056468 2018-03-23
JP2018056468 2018-03-23
PCT/JP2018/048288 WO2019181137A1 (ja) 2018-03-23 2018-12-27 情報処理装置および情報処理方法

Publications (1)

Publication Number Publication Date
JPWO2019181137A1 true JPWO2019181137A1 (ja) 2021-03-25

Family

ID=67987616

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020507362A Pending JPWO2019181137A1 (ja) 2018-03-23 2018-12-27 情報処理装置および情報処理方法

Country Status (5)

Country Link
US (1) US11768979B2 (ja)
EP (1) EP3770775A4 (ja)
JP (1) JPWO2019181137A1 (ja)
CN (1) CN111868754A (ja)
WO (1) WO2019181137A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11720997B2 (en) * 2018-10-19 2023-08-08 Samsung Electronics Co.. Ltd. Artificial intelligence (AI) encoding device and operating method thereof and AI decoding device and operating method thereof
WO2020080665A1 (en) 2018-10-19 2020-04-23 Samsung Electronics Co., Ltd. Methods and apparatuses for performing artificial intelligence encoding and artificial intelligence decoding on image
WO2020080873A1 (en) 2018-10-19 2020-04-23 Samsung Electronics Co., Ltd. Method and apparatus for streaming data
WO2020080765A1 (en) 2018-10-19 2020-04-23 Samsung Electronics Co., Ltd. Apparatuses and methods for performing artificial intelligence encoding and artificial intelligence decoding on image
WO2021079763A1 (ja) * 2019-10-21 2021-04-29 ソニー株式会社 情報処理方法、情報処理装置、及びプログラム
KR20210056179A (ko) * 2019-11-08 2021-05-18 삼성전자주식회사 Ai 부호화 장치 및 그 동작방법, 및 ai 복호화 장치 및 그 동작방법
EP4113388A1 (en) * 2021-06-30 2023-01-04 Samsung Electronics Co., Ltd. Method of optimizing neural network model and neural network model processing system performing the same
WO2023135790A1 (ja) * 2022-01-17 2023-07-20 楽天モバイル株式会社 ネットワーク管理装置、ネットワーク管理方法およびネットワーク管理システム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0451384A (ja) * 1990-06-19 1992-02-19 Canon Inc ニューラルネットワークの構築方法
JP2013088924A (ja) * 2011-10-14 2013-05-13 Toshiba Digital Media Engineering Corp 画像処理方法及び装置

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69130656T2 (de) * 1990-06-14 1999-06-17 Canon Kk Neuronale Netzwerke
JP2003317073A (ja) * 2002-04-24 2003-11-07 Fuji Xerox Co Ltd ニューラルネットワーク処理装置
US7502763B2 (en) * 2005-07-29 2009-03-10 The Florida International University Board Of Trustees Artificial neural network design and evaluation tool
CN101122973A (zh) * 2007-09-13 2008-02-13 北京航空航天大学 一种基于现场可编程门阵列的蚁群算法仿生硬件
JP4720853B2 (ja) * 2008-05-19 2011-07-13 ソニー株式会社 情報処理装置、情報処理方法、およびプログラム
US9043255B2 (en) * 2012-05-09 2015-05-26 International Business Machines Corporation Optimally configuring an information landscape
CN104519509A (zh) * 2013-09-29 2015-04-15 索尼公司 无线通信系统中的无线网络监控装置、方法和装置
WO2015083199A1 (en) * 2013-12-04 2015-06-11 J Tech Solutions, Inc. Computer device and method executed by the computer device
US10438112B2 (en) * 2015-05-26 2019-10-08 Samsung Electronics Co., Ltd. Method and apparatus of learning neural network via hierarchical ensemble learning
CN106203619B (zh) * 2015-05-29 2022-09-13 三星电子株式会社 数据优化的神经网络遍历
US10460231B2 (en) * 2015-12-29 2019-10-29 Samsung Electronics Co., Ltd. Method and apparatus of neural network based image signal processor
CN106796668B (zh) * 2016-03-16 2019-06-14 香港应用科技研究院有限公司 用于人工神经网络中比特深度减少的方法和系统
CN105847968B (zh) * 2016-03-21 2018-12-21 京东方科技集团股份有限公司 基于深度学习的解像方法和系统
JP6727543B2 (ja) * 2016-04-01 2020-07-22 富士ゼロックス株式会社 画像パターン認識装置及びプログラム
WO2017187798A1 (ja) 2016-04-28 2017-11-02 ソニー株式会社 情報処理装置、及び情報処理方法
WO2017216976A1 (en) * 2016-06-17 2017-12-21 Nec Corporation Information processing method and device for neural network
US20180018555A1 (en) * 2016-07-15 2018-01-18 Alexander Sheung Lai Wong System and method for building artificial neural network architectures
CN107688855B (zh) * 2016-08-12 2021-04-13 赛灵思公司 针对于复杂神经网络的分层量化方法与装置
CN107016175B (zh) * 2017-03-23 2018-08-31 中国科学院计算技术研究所 适用神经网络处理器的自动化设计方法、装置及优化方法
CN107103113B (zh) * 2017-03-23 2019-01-11 中国科学院计算技术研究所 面向神经网络处理器的自动化设计方法、装置及优化方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0451384A (ja) * 1990-06-19 1992-02-19 Canon Inc ニューラルネットワークの構築方法
JP2013088924A (ja) * 2011-10-14 2013-05-13 Toshiba Digital Media Engineering Corp 画像処理方法及び装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
加藤真平, THE NEXT TECHNOLOGY 脳に迫る人工知能 最前線, JPN6022042792, 30 May 2015 (2015-05-30), JP, pages 108ページ, ISSN: 0005027611 *
山本椋太ほか: "FPGAを用いた組込みシステム向けDNNフレームワークの構想", 電子情報通信学会技術研究報告, vol. 117, no. 455, JPN6022042790, 21 February 2018 (2018-02-21), JP, pages 169 - 174, ISSN: 0005027609 *
進藤智司ほか: "カーネルの類似性に基づく近似計算を行うCNNアクセラレータの検討", 電子情報通信学会技術研究報告, vol. 117, no. 479, JPN6022042791, 28 February 2018 (2018-02-28), JP, pages 179 - 184, ISSN: 0005027610 *

Also Published As

Publication number Publication date
US20210042453A1 (en) 2021-02-11
EP3770775A4 (en) 2021-06-02
US11768979B2 (en) 2023-09-26
WO2019181137A1 (ja) 2019-09-26
CN111868754A (zh) 2020-10-30
EP3770775A1 (en) 2021-01-27

Similar Documents

Publication Publication Date Title
JPWO2019181137A1 (ja) 情報処理装置および情報処理方法
US10459607B2 (en) Expandable application representation
CN102339209B (zh) 数据处理装置和方法
US9086776B2 (en) Modifying avatar attributes
CN103119589B (zh) 用于将移动设备功能绑定到应用定义的方法和装置
US20170131858A1 (en) Expandable Application Representation, Activity Levels, and Desktop Representation
US9857955B2 (en) Dynamic, optimized placement of computer-based windows
US20150286387A1 (en) Expandable Application Representation and Taskbar
CN105359121A (zh) 使用接收数据的应用远程操作
US20130057572A1 (en) Multiple Display Device Taskbars
CN104756072A (zh) 使用公共描述的跨平台数据可视化
CN102567010A (zh) 用于个性化内容布局的系统和方法
US10073604B2 (en) UI-driven model extensibility in multi-tier applications
JP2008135036A (ja) レンダリング装置及び方法
US8527579B2 (en) Server device and setting information sharing method
JPWO2019187542A1 (ja) 情報処理方法、情報処理装置、およびプログラム
WO2017079353A1 (en) Extensibility of compound data objects
WO2020166641A1 (ja) 情報処理装置、情報処理方法およびプログラム
CN112348955B (zh) 一种物体渲染方法
JP7485938B2 (ja) 情報処理装置、プログラム、情報処理装置の制御方法および情報処理システム
CN116719444B (zh) 打开文件的方法、创建项目快捷方式的方法及电子设备
CN118001740A (zh) 虚拟模型的处理方法、装置、计算机设备及存储介质
US20240007428A1 (en) Animated notification indicator
JP2009211135A (ja) 情報処理装置およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221011

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20230404