IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ヴィアナイ システムズ, インコーポレイテッドの特許一覧

<>
  • 特許-機械学習モデルの視覚的作成及び監視 図1
  • 特許-機械学習モデルの視覚的作成及び監視 図2
  • 特許-機械学習モデルの視覚的作成及び監視 図3
  • 特許-機械学習モデルの視覚的作成及び監視 図4
  • 特許-機械学習モデルの視覚的作成及び監視 図5A
  • 特許-機械学習モデルの視覚的作成及び監視 図5B
  • 特許-機械学習モデルの視覚的作成及び監視 図5C
  • 特許-機械学習モデルの視覚的作成及び監視 図5D
  • 特許-機械学習モデルの視覚的作成及び監視 図5E
  • 特許-機械学習モデルの視覚的作成及び監視 図5F
  • 特許-機械学習モデルの視覚的作成及び監視 図5G
  • 特許-機械学習モデルの視覚的作成及び監視 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-16
(45)【発行日】2024-02-27
(54)【発明の名称】機械学習モデルの視覚的作成及び監視
(51)【国際特許分類】
   G06F 8/34 20180101AFI20240219BHJP
   G06N 3/02 20060101ALI20240219BHJP
   G06N 20/00 20190101ALI20240219BHJP
【FI】
G06F8/34
G06N3/02
G06N20/00
【請求項の数】 12
(21)【出願番号】P 2022514186
(86)(22)【出願日】2020-09-11
(65)【公表番号】
(43)【公表日】2022-11-15
(86)【国際出願番号】 US2020050569
(87)【国際公開番号】W WO2021051006
(87)【国際公開日】2021-03-18
【審査請求日】2022-03-30
(31)【優先権主張番号】62/899,264
(32)【優先日】2019-09-12
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/017,594
(32)【優先日】2020-09-10
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519266524
【氏名又は名称】ヴィアナイ システムズ, インコーポレイテッド
(74)【代理人】
【識別番号】100073184
【弁理士】
【氏名又は名称】柳田 征史
(74)【代理人】
【識別番号】100175042
【弁理士】
【氏名又は名称】高橋 秀明
(72)【発明者】
【氏名】インダー シッカ,ヴィシャール
(72)【発明者】
【氏名】アメラン,ダニエル ジェイムズ
(72)【発明者】
【氏名】ダンネル,ケヴィン フレデリック
【審査官】山本 俊介
(56)【参考文献】
【文献】国際公開第2016/166881(WO,A1)
【文献】特開2015-167041(JP,A)
【文献】特開2018-014060(JP,A)
【文献】国際公開第2017/138220(WO,A1)
【文献】米国特許出願公開第2018/0307978(US,A1)
【文献】Chao Xie et al.,DeepVisual: A Visual Programming Tool for Deep Learning Systems,2019 IEEE/ACM 27th International Conference on Program Comprehension (ICPC) [online],2019年08月29日,pp.130-134,https://ieeexplore.ieee.org/document/8813295 [2023年3月17日検索],DOI: 10.1109/ICPC.2019.00028
【文献】赤石 雅典,Watson Studioで始める機械学習・深層学習,第1版,日本,株式会社リックテレコム,2018年12月04日,pp.77-83,167-182
【文献】Srikanth Tamilselvam et al.,A Visual Programming Paradigm for Abstract Deep Learning Model Development,arXiv [online],2019年08月19日,https://arxiv.org/abs/1905.02486v2 [2023年3月17日検索]
(58)【調査した分野】(Int.Cl.,DB名)
G06F 8/00- 8/77
G06N 3/00-99/00
(57)【特許請求の範囲】
【請求項1】
機械学習モデルを作成する方法であって、
機械学習モデルを視覚的に生成するための1つ以上のコンポーネントを含むユーザインタフェースを生成することと、
前記ユーザインタフェースを通じて受信されたユーザ入力に基づいて、前記機械学習モデルを定義した複数の数学的表現を指定したソースコードを修正することと、
前記ユーザ入力に基づいて、前記ユーザインタフェース内で前記機械学習モデルの視覚的表現を修正することと、
実行されるとき、前記機械学習モデルの訓練の間に前記機械学習モデルの1つ以上のパラメータを学習させる、コンパイル済みコードに前記ソースコードをコンパイルすることと、
を備え、
前記視覚的表現は、前記機械学習モデルの1つ以上の層内の1つ以上のニューロンを含み、前記機械学習モデルに入力された1つ以上の特徴、及び前記機械学習モデルの1つ以上の出力を含み、並びに前記1つ以上の層と関連付けられた層タイプ、前記1つ以上の層と関連付けられた活性化関数、及び前記機械学習モデルのモデルタイプを含み、
前記ユーザインタフェース内の機械学習モデルの前記視覚的表現の修正は、機械学習モデルの層、活性化関数、入力、出力、及び/もしくは別のコンポーネントのうちの1つ以上の色、形状、サイズを変更し、または前記別のコンポーネントを追加もしくは除去することによって実行される、前記方法。
【請求項2】
前記ユーザインタフェース内で、前記機械学習モデルと関連付けられた1つ以上の目的を管理するための1つ以上の追加のコンポーネントを出力することを更に備えた、請求項1に記載の方法。
【請求項3】
前記1つ以上の目的は、プロジェクトスケジュール、予測されることになるラベル、前記ラベルと関連付けられた性能メトリックについての閾値、及び前記機械学習モデルについての訓練データのソースのうちの少なくとも1つを含む、請求項に記載の方法。
【請求項4】
前記ユーザインタフェース内で、前記機械学習モデルと関連付けられた1つ以上の実験を管理するための1つ以上の追加のコンポーネントを出力することを更に備えた、請求項1に記載の方法。
【請求項5】
前記1つ以上の追加のコンポーネントは、実験バージョン、データセットバージョン、前記機械学習モデルのモデルバージョン、及び実験ステータスを含む、請求項に記載の方法。
【請求項6】
前記ユーザインタフェース内で、前記機械学習モデルを訓練した訓練結果と対話するための1つ以上の追加のコンポーネントを出力することを更に備えた、請求項1に記載の方法。
【請求項7】
前記1つ以上の追加のコンポーネントは、精密度-再現度曲線、混同行列、前記機械学習モデルについての訓練データセット、及び前記訓練データセットと関連付けられたフィルタのうちの少なくとも1つを含む、請求項に記載の方法。
【請求項8】
前記コンパイル済みコードに前記ソースコードをコンパイルすることは、
前記ソースコードの抽象シンタックスツリー(AST)表現を生成することと、
前記AST表現に基づいて、前記コンパイル済みコードを生成することと、
前記ソースコードの構造に基づいて、前記機械学習モデル内の前記1つ以上のパラメータが学習されることになると判定することと、
を含む、請求項1に記載の方法。
【請求項9】
前記1つ以上のコンポーネントは、前記機械学習モデルを定義するための前記ソースコードの少なくとも一部を指定するためのコンポーネントを含む、請求項1に記載の方法。
【請求項10】
前記コンパイル済みコードを生成すると、前記機械学習モデル及び前記機械学習モデルを含む実験と関連付けられた1つ以上のバージョンを増加させることを更に備えた、請求項1に記載の方法。
【請求項11】
命令を記憶した非一時的コンピュータ可読媒体であって、前記命令は、プロセッサによって実行されるとき、前記プロセッサに、請求項1から10のいずれかに記載の方法を実行させる、前記非一時的コンピュータ可読媒体。
【請求項12】
命令を記憶したメモリと、
前記メモリに結合されたプロセッサと、を備え、前記プロセッサは、前記命令を実行するとき、請求項1から11のいずれかに記載の方法を実行するように構成されている、システム。
【発明の詳細な説明】
【関連出願への相互参照】
【0001】
本出願は、2019年9月12日に出願され、シリアル番号62/899,264を有する「TECHNIQUES FOR DEFINING AND EVALUATING NEURAL NETWORK ARCHITECTURES AND CORRESPONDING TRAININGDATA」と題する米国仮特許出願の優先権、及び2020年9月10日に出願され、シリアル番号17/017,594を有する「VISUALLY CREATING AND MONITORING MACHINE LEARNING MODELS」と題する米国特許出願の優先権を主張する。それらの関連する出願の主題は、参照によって以下に組み込まれる。
【技術分野】
【0002】
本開示の実施形態は概して、機械学習に関し、より具体的に、機械学習モデルを視覚的に作成及び監視する技術に関する。
【背景技術】
【0003】
複雑なデータ、相互接続されたデータ及び/または多次元データの大規模セットに関連する傾向、パターン、関係、及び/または他の属性を発見するために、機械学習が使用されることがある。大規模データセットからの見識を集めるために、データ内の入力-出力ペアを使用して、回帰モデル、人工ニューラルネットワーク、サポートベクトルマシン、決定木、単純ベイズ分類器、及び/または他のタイプの機械学習モデルが訓練されることがある。次いで、データに関連する決定をガイドし、及び/またはデータに関連するアクションを実行するために、発見された情報が使用されることがある。例えば、販売決定をガイドし、リスクを評価し、虚偽を検出し、振る舞いを予測し、自律車両を制御し、及び/またはアプリケーションもしくはウェブサイトの使用をカスタマイズもしくは最適化するために、機械学習モデルの出力が使用されることがある。
【0004】
機械学習内で、高い程度の精度により広範囲のタスクを実行するために、ニューラルネットワークが訓練されることがある。したがって、人工知能の分野においてニューラルネットワークが広く採用されてきている。ニューラルネットワークは、様々な範囲のネットワークアーキテクチャを有することがある。より複雑なシナリオでは、ニューラルネットワークについてのネットワークアーキテクチャは、異なる層の中で入り組んだ接続のトポロジを有する多くの異なるタイプの層を含むことがある。例えば、一部のニューラルネットワークは、10以上の層を有することがあり、各々の層は、数百または数千のニューロンを含むことがあり、数百または数千の個々の接続を介して1つ以上の他の層に結合されることがある。
【0005】
ニューラルネットワーク開発工程の間、設計者は、特定のタイプの問題に対処するニューラルネットワークアーキテクチャを作成するために、プログラムコードを書き込む。設計者は次いで、訓練データ及びその訓練データを処理するときにニューラルネットワークが作成するべきターゲット出力を使用して、ニューラルネットワークを訓練する。例えば、設計者は、画像のセット内に示されるランドスケープのタイプを示すラベルに従って、様々なランドスケープを表示する画像のセットに基づいて、ニューラルネットワークを訓練する。
【0006】
ニューラルネットワークについてのプログラムコードを書き込むとき、設計者は、ニューラルネットワーク設計及び全体的なコーディング工程を促進するための様々なツールを公開する、1つ以上のプログラミングライブラリに依存することが多い。それらのタイプのプログラミングライブラリを使用する1つの欠点は、プログラミングライブラリを使用するために、理解及び習得することが通常は困難である複雑なソフトウェアスタックがインストール及び実行される必要があることである。例えば、ニューラルネットワークを定義するために、開発者は、いくつかのライブラリをインストールする必要があることがあり、各々のライブラリは、ニューラルネットワークを定義し、訓練し、及び/または実行するときにそれらのライブラリによって公開される機能性の多くが使用されないことになるときでさえ、数千のコードのラインを有する。それ故に、有能なニューラルネットワーク開発者のプールは、関連する複雑なソフトウェアスタックを使用する際に必須のレベルの専門知識を達成した小数の組の開発者に制限される。それらの複雑なソフトウェアスタックは、適切な実行のために相当な計算リソース及びメモリリソースをも必要とする。結果として、ニューラルネットワーク開発者のプールは、それらの計算要件及びメモリ要件を満たすより洗練されたハードウェアへのアクセスを有する者に更に制限される。
【0007】
ニューラルネットワークを設計するときに従来のプログラミングライブラリを使用する別の欠点は、それらのプログラミングライブラリが全体的に、設計者が制限された数のニューラルネットワーク特徴のみしか制御することを可能にしないことである。特に、プログラミングライブラリは典型的には、層定義機能を含み、層定義機能は、厳密であり、定義することができるニューラルネットワーク層のタイプ及びパラメータに制限を課す。例えば、一部の従来のプログラミングライブラリは、ニューラルネットワークの所与の層内のどの変数が、訓練段階の間に学習されるか、または層の重みパラメータのみが訓練段階の間に学習されることになることを許可するハードコードされたルールを有するかを設計者が明確に指定することを必要とする。それらのタイプの制約は、開発者が独創的であること、及びニューラルネットワークを設計するときに広範囲の構成を探索することが可能になることを防止する。
【0008】
従来のプログラミングライブラリを使用する代わりに、設計者は、Python、C、C++、またはJavaなどの従来型プログラミング言語を使用して、ニューラルネットワークについてのコードを書き込むことがある。しかしながら、従来型プログラミング言語フレームワークは、ニューラルネットワークアーキテクチャのコアにあるもののように、数学方式演算を容易に定義及び実装するために良好に適合していない。結果として、設計者は典型的には、ニューラルネットワーク内の各々の層がどのように動作するかを定義し、様々な層がどのように共に結合されるかを指定し、異なる層によって実行される様々な演算を描写する、大容量の複雑なコードを書き込む必要がある。更に、訓練段階の間に学習される変数は、ニューラルネットワークについてのコードがコンパイルされるときに割り当てられない。従来型プログラミング言語についての従来のコンパイラは、コンパイル時間の間に割り当てられない変数に直面するときに誤りを発行する。それらのタイプの誤りに対処するために、開発者は、割り当てられていない変数にランダム値を割り当てる必要があり、それは、訓練段階に固有のバイアスを導入することがあり、訓練工程及び/または訓練済みニューラルネットワークの精度に悪影響を及ぼすことがある。
【0009】
上述したことが例示するように、本分野において必要とされるのは、ニューラルネットワーク及び/または他のタイプの機械学習モデルを定義するためのより効果的な技術である。
【発明の概要】
【0010】
本発明の1つの実施形態は、機械学習モデルを作成するための技術を示す。技術は、機械学習モデルを視覚的に生成するための1つ以上のコンポーネントを含むユーザインタフェースを生成することを含む。技術はまた、ユーザインタフェースを通じて受信されたユーザ入力に基づいて、機械学習モデルを定義した複数の数学的表現を指定したソースコードを修正することを含む。技術は更に、実行されるとき、機械学習モデルの訓練の間に機械学習モデルの1つ以上のパラメータを学習させる、コンパイル済みコードにソースコードをコンパイルすることを含む。
【0011】
開示される技術の少なくとも1つの技術的利点は、機械学習モデルについてのコードを書き込み、デバッグし、及びコンパイルする複数のラウンドを実行し、機械学習モデルを訓練し、試験し、及び検証するためのワークフロー及びパイプラインを手動で定義及び実行し;並びに異なるバージョンの機械学習モデル、データセット、及び/または実験を追跡するために、追加の処理時間及び/またはリソース消費を伴う従来の技術に対して、オーバヘッドを低減させることを含む。機械学習モデル、データセット、及び関連する性能メトリックの視覚的表現は加えて、機械学習モデルの理解、機械学習モデルの性能に影響を及ぼす特徴もしくは他の属性の識別、並びに/またはより高いレベルの目標及び目的を有する性能メトリックの調整を改善することができる。次いで、AIアプリケーション及びユーザインタフェースを使用して作成された機械学習モデルは、従来のツールを使用して作成された機械学習モデルよりも良好な性能及び/または高速な収束を有することができる。それ故に、開示される技術は、機械学習モデルを設計し、訓練し、評価し、及び/または選択するためのアプリケーション、ツール、及び/またはコンピュータシステムにおける技術的改善をもたらす。
【0012】
様々な実施形態の上記記載された特徴を詳細に理解することができるように、その一部が添付図面において例示される、様々な実施形態を参照することによって、上記で簡潔に要約された、発明的概念のより特定の説明を得ることができる。しかしながら、添付図面は、発明的概念の典型的な実施形態のみを例示し、したがって、範囲を何ら限定すると考えられることにはならず、他の同等の効果的な実施形態が存在することに留意されよう。
【0013】
特許または出願は、カラーで実行された少なくとも1つの図面を包含する。カラー図面(複数可)を有するこの特許または特許出願公開の複製は、要求があり、必要な手数料の支払いによりオフィスによって提供される。
【図面の簡単な説明】
【0014】
図1】様々な実施形態の1つ以上の態様を実装するように構成されたシステムを例示する。
図2】様々な実施形態に従った、図1のAI設計アプリケーションのより詳細な例示である。
図3】様々な実施形態に従った、図2のネットワークジェネレータのより詳細な例示である。
図4】様々な実施形態に従った、図3のコンパイラエンジン及び合成エンジンのより詳細な例示である。
図5A】様々な実施形態に従った、図1のグラフィカルユーザインタフェース(GUI)の実施例のスクリーンショットである。
図5B】様々な実施形態に従った、図1のGUIの実施例のスクリーンショットである。
図5C】様々な実施形態に従った、図1のGUIの実施例のスクリーンショットである。
図5D】様々な実施形態に従った、図1のGUIの実施例のスクリーンショットである。
図5E】様々な実施形態に従った、図1のGUIの実施例のスクリーンショットである。
図5F】様々な実施形態に従った、図1のGUIの実施例のスクリーンショットである。
図5G】様々な実施形態に従った、図1のGUIの実施例のスクリーンショットである。
図6】様々な実施形態に従った、機械学習モデルを作成する方法ステップのフローチャートである。
【発明を実施するための形態】
【0015】
以下の説明では、様々な実施形態のより完全な理解を提供するために、多数の特定の詳細が示される。しかしながら、それらの特定の詳細の1つ以上なしに、発明的概念が実施されてもよいことが当業者にとって明らかである。
【0016】
システム概要
図1は、様々な実施形態の1つ以上の態様を実装するように構成されたシステムを例示する。示されるように、システム100は、ネットワーク150を介して共に結合されたクライアント110及びサーバ130を含む。クライアント110またはサーバ130は、デスクトップコンピュータ、ラップトップコンピュータ、モバイルデバイス、コンピューティングデバイスの仮想化インスタンス、並びに分散コンピュータシステム及び/またはクラウド方式コンピュータシステムなどを含む、いずれかの技術的に実現可能なタイプのコンピュータシステムであってもよい。ネットワーク150は、とりわけ、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、ワールドワイドウェブ、またはインターネットを含む、いずれかの技術的に実現可能な相互接続された通信リンクのセットであってもよい。クライアント110及びサーバ130は、ネットワーク150を介して通信するように構成される。
【0017】
更に示されるように、クライアント110は、共に結合されたプロセッサ112、入力/出力(I/O)デバイス114、及びメモリ116を含む。プロセッサ112は、データを処理し、ソフトウェアアプリケーションを実行するように構成された、いずれかの技術的に実現可能なハードウェアユニットのセットを含む。例えば、プロセッサ112は、1つ以上のセントラルプロセシングユニット(CPU)、1つ以上のグラフィックプロセシングユニット(GPU)、及び/または1つ以上の並列プロセシングユニット(PPU)を含む。I/Oデバイス114は、例えば、とりわけ、ディスプレイデバイス、キーボード、及びタッチスクリーンを含む、入力演算及び/または出力演算を実行するように構成されたいずれかの技術的に実現可能なデバイスのセットを含む。
【0018】
メモリ116は、例えば、ハードディスク、ランダムアクセスメモリ(RAM)モジュール、及びリードオンリメモリ(ROM)など、データ及びソフトウェアアプリケーションを記憶するように構成されたいずれかの技術的に実現可能な記憶媒体を含む。メモリ116は、データベース118(0)、人工知能(AI)設計アプリケーション120(0)、機械学習モデル122(0)、及びグラフィカルユーザインタフェース(GUI)124(0)を含む。データベース118(0)は、様々なタイプのデータを記憶したファイルシステム及び/またはデータ記憶アプリケーションである。AI設計アプリケーション120(0)は、プロセッサ112によって実行されるとき、1つ以上の機械学習モデルを生成し、解析し、評価し、及び記述するよう、サーバ130上で実行する対応するソフトウェアアプリケーションと相互作用する。機械学習モデル122(0)は、1つ以上の人工ニューラルネットワーク、サポートベクトルマシン、回帰モデル、ツリー方式モデル、階層モデル、アンサンブルモデル、及び/または汎用もしくは特殊化人工知能指向演算を実行するように構成された他のタイプのモデルを含む。GUI124(0)は、ユーザがAI設計アプリケーション120(0)とインタフェース接続することを可能にする。
【0019】
サーバ130は、共に結合されたプロセッサ132、I/Oデバイス134、及びメモリ136を含む。プロセッサ132は、1つ以上のCPU、1つ以上のGPU、及び/または1つ以上のPPUなど、データを処理し、ソフトウェアアプリケーションを実行するよう構成されたいずれかの技術的に実現可能なハードウェアユニットのセットを含む。I/Oデバイス134は、とりわけ、ディスプレイデバイス、キーボード、またはタッチスクリーンなど、入力演算及び/または出力演算を実行するように構成されたいずれかの技術的に実現可能なデバイスのセットを含む。
【0020】
メモリ136は、例えば、ハードディスク、RAMモジュール、及びROMなど、データ及びソフトウェアアプリケーションを記憶するように構成されたいずれかの技術的に実現可能な記憶媒体を含む。メモリ136は、データベース118(1)、AI設計アプリケーション120(1)、機械学習モデル122(1)、及びGUI124(1)を含む。データベース118(1)は、データベース118(1)と同様に、様々なタイプのデータを記憶したファイルシステム及び/またはデータ記憶アプリケーションである。AI設計アプリケーション120(1)は、プロセッサ132によって実行されるとき、1つ以上の機械学習モデルを生成し、解析し、評価し、及び記述するよう、AI設計アプリケーションと対話するソフトウェアアプリケーションである。機械学習モデル122(1)は、1つ以上の人工ニューラルネットワーク、サポートベクトルマシン、回帰モデル、ツリー方式モデル、階層モデル、アンサンブルモデル、及び/または汎用もしくは特殊化人工知能指向演算を実行するように構成された他のタイプのモデルを含む。GUI124(1)は、ユーザがAI設計アプリケーション120(1)とインタフェース接続することを可能にする。
【0021】
一般的な事項として、データベース118(0)及び118(1)は、分散記憶エンティティの別個の部分を表す。よって、簡易化のために、データベース118(0)及び118(1)は、本明細書で集合的にデータベース118と称される。同様に、AI設計アプリケーション120(0)及び120(1)は、本明細書で説明される発明的演算のいずれか及び全てを実行するように構成された分散ソフトウェアエンティティの別個の部分を表す。したがって、AI設計アプリケーション120(0)及び120(1)は、以下で集合的にAI設計アプリケーション120と称される。機械学習モデル122(0)及び122(1)は同様に、分散機械学習モデルを表し、本明細書で集合的に機械学習モデル122と称される。GUI124(0)及び124(1)は同様に、本明細書で集合的に1つ以上のGUIの分散部分を表し、本明細書で集合的にGUI124と称される。
【0022】
動作中、AI設計アプリケーション120は、GUI124を介して受信されたユーザ入力に基づいて、機械学習モデル122を生成する。GUI124は、設計及び解析ツールを公開し、設計及び解析ツールは、ユーザが、他の演算の中で、機械学習モデル122を作成及び編集すること、機械学習モデル122の機能性を探索すること、訓練データに対して機械学習モデル122を評価すること、並びに機械学習モデル122の実行及び/または演算を記述及び/または制約した様々なデータを生成することを可能にする。上記演算を実行するAI設計アプリケーション120内の様々なモジュールは、図2と共に以下でより詳細に説明される。
【0023】
図2は、様々な実施形態に従った、図1のAI設計アプリケーション120のより詳細な例示である。示されるように、AI設計アプリケーション120は、ネットワークジェネレータ200、ネットワークアナライザ210、ネットワークエバリュエータ220、及びネットワークディスクリプタ230を含み;機械学習モデル122は、1つ以上のエージェント240を含み;GUI124は、オーバビューGUI206、特徴エンジニアリングGUI204、ネットワーク生成202、ネットワーク解析GUI212、ネットワーク評価GUI222、及びネットワーク記述GUI232を含む。
【0024】
動作中、ネットワークジェネレータ200は、機械学習モデル122内でエージェント240を設計及び接続するためのツールをユーザに提供するよう、ネットワーク生成GUI202をレンダリングする。所与のエージェント240は、様々なAI指向タスクを実行するニューラルネットワーク242(または、別のタイプの機械学習モデル)を含んでもよい。所与のエージェント240はまた、汎用タスクを実行する他のタイプの機能的要素を含んでもよい。ネットワークジェネレータ200は、訓練データ250に基づいて、特定のエージェント240に含まれるニューラルネットワーク242を訓練する。訓練データ250は、ニューラルネットワークを訓練するためのいずれかの技術的に実現可能なタイプのデータを含んでもよい。例えば、訓練データ250は、Modified National Institute of Standards and Technology(MNIST)デジット訓練セットを含む。
【0025】
訓練が完了するとき、ネットワークアナライザ210は、所与のエージェント240内のニューラルネットワーク(または、別のタイプの機械学習モデル122)がどのように動作するかを解析及び理解するためのツールをユーザに提供するよう、ネットワーク解析GUI212をレンダリングする。特に、ネットワークアナライザ210は、ネットワーク解析GUI212に、他の演算の中で、所与のニューラルネットワーク242内の様々な接続及び重みを表示させ、様々な入力への所与のニューラルネットワーク242の応答をシミュレートさせる。
【0026】
加えて、ネットワークエバリュエータ220は、訓練データ250に対して所与のニューラルネットワーク242を評価するためのツールをユーザに提供するよう、ネットワーク評価GUI222をレンダリングする。より具体的に、ネットワークエバリュエータ220は、ネットワーク評価GUI222を介して、訓練データ250の特定の部分を示すユーザ入力を受信する。ネットワークエバリュエータ220は次いで、所与のニューラルネットワーク242が訓練データ250のその部分にどのように応答するかをシミュレートする。ネットワークエバリュエータ220はまた、ネットワーク評価GUI222に、訓練データ250の特定の部分をフィルタリングさせ、訓練データ250の特定の部分は、所与のニューラルネットワーク242に、特定のタイプの出力を生成させる。
【0027】
上記と共に、ネットワークディスクリプタ230は、エージェント240と関連付けられた所与のニューラルネットワーク242を解析し、ユーザにニューラルネットワーク242の性能を記述した自然言語表現を生成する。ネットワークディスクリプタ230はまた、ニューラルネットワーク242が訓練データ250をどのように解釈するかに関連する様々な「コモンセンス」事実をユーザに提供することができる。ネットワークディスクリプタ230は、ネットワーク記述GUI232を介してユーザにこのデータを出力する。加えて、ネットワークディスクリプタ230は、ネットワーク記述GUI232を介してユーザからルール方式表現を取得してもよく、次いで、それらの表現に基づいて、ネットワーク振る舞いを制約してもよい。更に、ネットワークディスクリプタ230は、ネットワーク性能の様々な態様を定量化したメトリックを生成してもよく、次いで、ネットワーク記述GUI232を介してユーザにそれらのメトリックを表示してもよい。
【0028】
示されるように、GUI124は加えて、AI設計アプリケーション120及び/またはシステムの別のコンポーネントによってレンダリングすることができる、オーバビューGUI206及び特徴エンジニアリングGUI204を含む。オーバビューGUI206は、ニューラルネットワーク242及び/または他の機械学習モデル122を伴うプロジェクトまたは実験と関連付けられた目的を参照し、設定し、及び/またはそうでなければ管理するための1つ以上のユーザインタフェース要素を含む。特徴エンジニアリングGUI204は、ニューラルネットワーク242及び/または他の機械学習モデル122に入力された特徴を参照し、編成し、作成し、及び/またはそうでなければ管理するための1つ以上のユーザインタフェース要素を含む。GUI124は、図5A~5Gに関して更に詳細に以下で説明される。
【0029】
図1~2を全体的に参照して、AI設計アプリケーション120は有利に、ニューラルネットワーク振る舞いを生成し、解析し、評価し、及び記述するための様々なツールをユーザに提供する。開示される技術は、ユーザからネットワーク訓練及び後続の演算を全体的に曖昧にする、ニューラルネットワークを生成する従来のアプローチとは異なる。
【0030】
図3は、様々な実施形態に従った、図1のネットワークジェネレータのより詳細な例示である。示されるように、ネットワークジェネレータ200は、コンパイラエンジン300、合成エンジン310、訓練エンジン320、及び視覚化エンジン330を含む。
【0031】
動作中、視覚化エンジン330は、ネットワーク生成GUI202を生成し、ネットワーク生成GUI202を介してユーザからエージェント定義340を取得する。コンパイラエンジン300は、コンパイル済みコード302を生成するよう、所与のエージェント定義340に含まれるプログラムコードをコンパイルする。コンパイラエンジン300は、C、C++、Python及び関連するフレームワーク、並びにJavaScript及び関連するフレームワークなどを含む、いずれかの技術的に実現可能なプログラミング言語を構文解析し、コンパイルし、及び/または解釈するように構成される。合成エンジン310は、コンパイル済みコード302及び1つ以上のパラメータに基づいて初期ネットワーク312を生成し、1つ以上のパラメータは、そのコードがどのように実行するかに影響を与える。初期ネットワーク312は、訓練されておらず、高い程度の精度により1つ以上の意図した演算を実行する能力を欠くことがある。
【0032】
訓練エンジン320は、訓練済みネットワーク322を生成するよう、訓練データ250に基づいて初期ネットワーク312を訓練する。訓練済みネットワーク322は、初期ネットワーク312よりも高い程度の精度により1つ以上の意図した演算を実行することができる。訓練エンジン320は、バックプロパゲーション及び最急降下法などを含む、いずれかの技術的に実現可能なタイプの訓練演算を実行することができる。視覚化エンジン330は、エージェント定義340を介して定義されたネットワークアーキテクチャをグラフィカルに描画すると共に、訓練済みネットワーク322の様々な性能属性を説明するよう、上記演算と共にネットワーク生成GUI202を更新する。
【0033】
ニューラルネットワークエージェントの数学的方式プログラミング及び実行
上記議論されたように、ニューラルネットワークアーキテクチャを定義及び実行するために、開発者は典型的には、習得するのが困難であり、根本的なネットワークアーキテクチャの詳細の多くを曖昧にすることが多い、厄介なツール及びライブラリを使用する。結果として、様々なツール及びライブラリにおける専門知識を有する小数の組の開発者によってのみニューラルネットワークを作成されることがある。更に、ネットワークアーキテクチャの根本的な詳細がツール及びライブラリのフレームワーク内で深く入れ子にされることを理由に、開発者は、アーキテクチャがどのように機能するか、またはアーキテクチャをどのように変更もしくは改善するかを理解しないことがある。ニューラルネットワーク定義パラダイムにおけるそれらの不備及び他の不備に対処するために、ニューラルネットワークアーキテクチャを定義するための数学的方式プログラミング及び実行フレームワークが以下で議論される。
【0034】
様々な実施形態では、数学的方式プログラミング言語におけるニューラルネットワークエージェント定義についてのソースコードは、リンク済み数学的表現のパイプラインである。いずれの中間ライブラリをも必要とすることなく、ソースコードが機械コードにコンパイルされ、機械コードは、訓練可能且つ実行可能なニューラルネットワークを表す。ニューラルネットワークアーキテクチャが一連の数学的表現としてソースコード内で定義されるために、数学的方式プログラミング言語は、いくつかの構築ブロックを公開する。それらは、ニューラルネットワークの層を指定するための層表記、ニューラルネットワークの2つ以上の層または2つ以上のニューラルネットワークの間のリンクを指定するためのリンク表記、変数(=)のソースを指定するための変数割り当て表記、並びに加算(+)、除算(/)、総和(Σ)、開き括弧及び閉じ括弧(())、行列定義、親子関係(∈)などの様々な数学演算表記を含む。
【0035】
ニューラルネットワークの各々の層は、上記議論された構築ブロックを使用して、1つ以上の数学的表現として数学的方式プログラミング言語において定義される。例えば、数学的表現のセットを含む、以下のソースコードを使用して畳み込み層が定義されてもよい。
【0036】
上記実施例では、ソースコードの第1のラインは、ソースコードの後続のラインが入力X及び出力Yを有するCONVOLUTION演算に関連することを示す。ソースコードの後続のラインは、出力Yを生成するよう、入力Xに対して実行される数学演算を定義した数学的表現の数列を含む。各々の数学的表現は、右側部分及び左側部分を含む。左側部分は、右側部分によって指定された数学的演算が評価されるときに判定される値を指定する。例えば、上記示された数学的表現「c=s(i-1)-z+t」では、「c」が左側部分であり、「s(i-1)-z+t」の右側部分が評価されるときに生成された値に変数cが割り当てられることを指定する。
【0037】
ニューラルネットワークエージェントのソースコードに含まれる変数の値は、ニューラルネットワークがインスタンス化されるときに割り当てられるか、またはニューラルネットワークの訓練の間に学習されるかのいずれかである。他のニューラルネットワーク定義パラダイムとは異なり、数学的方式プログラミング言語を使用して定義されたニューラルネットワークエージェントの開発者は、訓練の間にどの変数が学習されることになる(本明細書で「学習済み変数」と称される)かについての制御を有する。更に、訓練の間に学習されることになる変数は、ニューラルネットワークがインスタンス化されるときでさえ、初期化されないままであってもよい(すなわち、値または値のソースを割り当てられることなく)。ニューラルネットワークのコンパイル及び訓練の間にそれらの学習済み変数を扱うための技術は、図4~6と共に以下で詳細に議論される。
【0038】
図4は、様々な実施形態に従った、図3のコンパイラエンジン300及び合成エンジン310のより詳細な例示である。示されるように、コンパイラエンジン300は、シンタックスツリージェネレータ406、インスタンシエータ408、及びコンパイル済みコード302を含む。合成エンジン310は、ネットワークビルダ412、及び学習済み変数410を含む初期ネットワーク312を含む。
【0039】
コンパイラエンジン300及び合成エンジン310の演算は、所与のエージェント定義402と共に説明される。エージェント定義402のソースコードは、複数の層仕様を含み、各々の層仕様は、数学的方式プログラミング言語を使用して定義された1つ以上の数学的表現404(個々に数学的表現404と称される)を含む。上記議論されたように、各々の数学的表現404は、右側部分によって指定された数学的演算が評価されるときに判定された値を指定した左側部分を含む。数学的表現404は、各々のグループがニューラルネットワークアーキテクチャの異なる層に対応するようにグループ化される。エージェント定義402のソースコードは、数学的表現404の異なるグループの間のリンクを指定する。
【0040】
コンパイラエンジン300は、コンパイル済みコード302にエージェント定義402のソースコードをコンパイルする。コンパイル済みコード302を生成するために、コンパイラエンジン300は、シンタックスツリージェネレータ406及びインスタンシエータ408を含む。シンタックスツリージェネレータ406は、エージェント定義402のソースコードを構文解析し、ソースコードの抽象シンタックスツリー(AST)表現を生成する。様々な実施形態では、AST表現は、定数及び変数が演算子またはステートメントを含む親ノードへの子ノードである、ノードのツリー構造を含む。ASTは、ソースコードのシンタックス構造、すなわち、ステートメント、数学的表現、変数、及びソースコード内に包含されるものの間の関係をカプセル化する。
【0041】
インスタンシエータ408は、コンパイル済みコード302を生成するよう、ASTを処理する。動作中、インスタンシエータ408は、ASTに対して意味解析を実行し、コードの中間表現を生成し、最適化を実行し、コンパイル済みコード302を含む機械コードを生成する。意味解析のために、インスタンシエータ408は、意味正当性についてソースコードを検査する。様々な実施形態では、意味検査は、ASTに含まれる変数及びタイプが適切に宣言されているかどうか、並びに演算子及びオブジェクトのタイプが一致することを判定する。意味解析を実行するために、インスタンシエータ408は、ソースコードに含まれる所与のオブジェクトまたは機能タイプのインスタンスの全てをインスタンス化する。更に、インスタンシエータ408は、全ての命名されたオブジェクト-クラス、変数、及び関数を表すシンボルテーブルを生成し、ソースコードに対して意味検査を実行するために、シンボルテーブルを使用する。
【0042】
インスタンシエータ408は、変数の値がソースコード内で識別されたソースに割り当てられるかどうかを判定するよう、シンボルテーブル内の変数ごとにマッピング演算を実行する。インスタンシエータ408は、潜在的な学習済み変数として割り当てられたソースを有しない変数、すなわち、訓練工程の間に学習されることになる変数をフラグ付けする。様々な実施形態では、それらの変数は、変数が学習済み変数であることを示す特殊タイプを有しない。更に、ソースコードは、変数が学習済み変数であることを明確に示さない。インスタンシエータ408は、ソースに割り当てられないそれらの変数のおかげで学習されることになる潜在的な変数として、それらの変数を自動で識別する。よって、インスタンシエータ408は、従来型コンパイラ及びインタプリタとは異なって動作し、それは、変数が割り当てられないこと、宣言されないこと、またはそうでなければ定義されないことを可能にせず、コンパイラ工程の間に誤りを引き起こす。
【0043】
インスタンシエータ408は、合成エンジン310に、コンパイル済みコード302及び潜在的な学習済み変数のリストを送信する。上記議論されたように、合成エンジン310は、コンパイル済みコード302、及びコンパイル済みコード302がどのように実行するかに影響を及ぼす1つ以上のパラメータに基づいて、初期ネットワーク312を生成する。特に、ネットワークビルダ412は、ニューラルネットワークアーキテクチャの異なる層を判定し、所与の層の出力が1つ以上の後続の層の入力にどのようにリンクされるかを判定するよう、コンパイル済みコード302の構造を解析する。様々な実施形態では、ネットワークビルダ412はまた、例えば、ユーザ入力を介して、コンパイル済みコード302に含まれる特定の変数についての値を受信する。
【0044】
ネットワークビルダ412に含まれる学習済み変数識別子414は、初期ネットワーク312内で学習済み変数410を識別する。動作中、学習済み変数識別子414は、ネットワークビルダ412によって判定されたニューラルネットワークアーキテクチャの層の構造及びネットワークビルダ412によって受信された変数についてのいずれかの値を考慮して、インスタンシエータ408から受信された潜在的な学習済み変数のリストを解析する。潜在的な学習済み変数の各々について、学習済み変数識別子414は、ニューラルネットワークアーキテクチャの所与の層内の潜在的な学習済み変数のソースがニューラルネットワークアーキテクチャの前の層からの出力であるかどうかを判定する。そのようなソースが存在する場合、潜在的な学習済み変数は、ニューラルネットワークの訓練の間に学習されることになる変数ではない。同様に、学習済み変数識別子414は、潜在的な学習済み変数についての値がネットワークビルダ412に明確に提供されていたかどうかを判定する。そのような値が提供されていた場合、潜在的な学習済み変数は、ニューラルネットワークの訓練の間に学習されることになる変数ではない。そのようにして、学習済み変数識別子414は、潜在的な学習済み変数が本当に訓練の間に学習されることになる変数であるかどうかを判定するよう、潜在的な学習済み変数の各々を処理する。潜在的な学習済み変数の全てが処理されると、学習済み変数識別子414は、それに対してソースが判定されていない潜在的な学習済み変数のいずれかを識別する。それらの変数は、初期ネットワーク312の学習済み変数410を構成する。
【0045】
様々な実施形態では、学習済み変数識別子414は、ネットワーク生成GUI202に、学習済み変数識別子414によって識別された学習済み変数410を表示させる。学習済み変数410は次いで、ニューラルネットワークアーキテクチャの開発者など、GUI202のユーザによって確認されてもよく、またはそうでなければ修正されてもよい。
【0046】
上記議論されたように、訓練エンジン320は、訓練済みネットワーク322を生成するよう、訓練データ250に基づいて初期ネットワーク312を訓練する。訓練済みネットワーク322は、訓練工程の間に学習された学習済み変数410についての値を含む。訓練済みネットワーク322は、初期ネットワーク312よりも高い程度の精度により1つ以上の意図した演算を実行することができる。訓練エンジン320は、バックプロパゲーション、最急降下法、及びハイパーパラメータチューニングなどを含む、いずれかの技術的に実現可能なタイプの訓練演算を実行してもよい。
【0047】
機械学習モデルの視覚的な作成及び監視
上記言及されたように、GUI124は、ユーザがAI設計アプリケーション120とインタフェース接続することを可能にするコンポーネントを含む。それらのコンポーネントは、それらに限定されないが、オーバビューGUI206、特徴エンジニアリングGUI204、ネットワーク生成GUI202、ネットワーク解析GUI212、ネットワーク評価GUI222、ネットワーク記述GUI232を含む。以下で更に詳細に説明されるように、それらのコンポーネントは、機械学習モデル(例えば、機械学習モデル122)及び/または機械学習モデルを伴うプロジェクトの操作を作成し、訓練し、評価し、及び/またはそうでなければ監視するための処理及び技術を合理化することができる。
【0048】
図5Aは、様々な実施形態に従った、図1のGUI124の実施例のスクリーンショットである。より具体的に、図5Aは、1つ以上の機械学習モデル122を伴うプロジェクトに関連する目的をレビューし、設定し、及び/または管理するためのいくつかのコンポーネント502~508を含む、実施例のオーバビューGUI206のスクリーンショットを含む。
【0049】
コンポーネント502は、プロジェクトに関連する高レベル情報を提供する「プロジェクトオーバビュー」セクションを含む。この情報は、「どの顧客が次月にそれらのメンバシップを取り消す可能性が高いかを予測する」ための述べられた目的、複数の段階を有するスケジュール、及びプロジェクトに関与するチームのメンバを含む。
【0050】
コンポーネント504は、プロジェクトに関連する「成功基準」を参照及び/または修正するために使用される。特に、コンポーネント504は、機械学習モデル(複数可)によって予測されることになる「メンバシップ取り消し」のラベルを識別し;ラベルの値は、機械学習モデル(複数可)を訓練及び評価するために使用されるデータセット内の「取り消しする」列から取得される。コンポーネント504はまた、機械学習モデル(複数可)の精密度について70%の最小閾値及び機械学習モデル(複数可)の再現度についての90%の最小閾値を指定する。コンポーネント504は加えて、機械学習モデル(複数可)を訓練及び/または最適化する際の再現度に対して精密度が優先付けられることになることを示す。
【0051】
コンポーネント504内で、ユーザは、成功基準に関連する追加の情報を参照し、及び/または成功基準を修正するために、テキスト及び/またはドロップダウンメニューの強調された部分と対話してもよい。例えば、ユーザは、用語の定義を参照するために、「メンバシップ取り消し」の用語をクリックしてもよい。別の実施例では、ユーザは、「取り消しする」を現在表示しているドロップダウンメニューから予測されることになる異なるラベルを選択してもよい。第3の実施例では、ユーザは、対応するスライダと対話することによって、精密度及び再現度閾値を調節してもよい。第4の実施例では、ユーザは、「精密度」を現在表示しているドロップダウンメニューから優先付けられることになる異なる性能メトリックを選択してもよい。
【0052】
コンポーネント506は、機械学習モデル(複数可)についての70%の訓練、15%の検証、及び15%の試験への「2019年8月メンバシップレコード」データセットの分割を示す。ユーザは、比率を表すバーと対話することによって、訓練、検証、及び/または試験において使用されるデータセットの比率を変更してもよい。
【0053】
コンポーネント508は、データセットに関連する情報を示す。特に、コンポーネント508は、データセットに関連する1つ以上のレシピと共に、データセット内の行及び列のテーブルを含む。このテーブルは、コンポーネント504内で選択された「取り消しする」ラベルと共に、ラベルを予測するために使用することができる追加の列を含む。コンポーネント508は加えて、データセット内のデータの様々なプロットを参照するために使用することができる「プロット」セクションを含む。例えば、ユーザは、バーチャート、バイオリンプロット、パイチャート、モザイクプロット、ヒストグラム、相関行列、及び/またはデータセットの列の間もしくは中での相関もしくは他の関係の他の視覚化を参照するために、「プロット」セクションと対話してもよい。コンポーネント508内で、ユーザは、「プロット」セクションにユーザ定義ビジュアルを追加するために、「+」ボタンをクリックしてもよい。このユーザ定義ビジュアルは、様々なプログラミング言語及び/またはデータ視覚化ライブラリを使用して構築されてもよい。
【0054】
図5Bは、様々な実施形態に従った、図1のGUI124の実施例のスクリーンショットである。より具体的に、図5Bは、図5Aの実施例のオーバビューGUI206の異なるスクリーンを示す。このスクリーンは、図5Aのスクリーンに関連する機械学習モデル(複数可)またはプロジェクトと関連付けられたいくつかの実験を参照及び/または管理するためのいくつかのコンポーネント510~518を含む。
【0055】
コンポーネント510は、いくつかの精密度-再現度曲線内の実験の集約された結果を示し、コンポーネント514~518の各々は、対応する実験に関連する高レベル情報を示す。特に、コンポーネント514~518内の情報は、いくつかの列520~526に編成される。列520は、実験に関与するデータサイエンティスト及び/または他のユーザによる注記を含み、列522は、各々の実験の機械学習モデル(複数可)に入力された特徴のリストを含み、列524は、各々の実験において使用される機械学習モデル(複数可)のモデル名及び/またはタイプ(グラフィカルアイコンによって表されるような)を含み、列526は、各々の実験のステータス(例えば、行われた実験についての精密度、再現度、及び/または他の性能メトリックの値)を含む。
【0056】
ユーザは、GUI124の異なるスクリーンにナビゲートして、セルに関連するより詳細な情報を参照するために、特定の行及び列によって識別されるセルをクリックしてもよい。例えば、ユーザは、対応する実験についての全ての注釈を参照するために、列520内のセルをクリックしてもよい。別の実施例では、ユーザは、図5C及び5Dに関して以下で更に詳細に説明される、特徴エンジニアリングGUI204内の1つ以上のスクリーンにナビゲートするために、列522内のセルをクリックしてもよい。第3の実施例では、ユーザは、図5E~5Fに関して以下で更に詳細に説明される、ネットワーク生成GUI202、ネットワーク解析GUI212、及び/またはネットワーク記述GUI232内の1つ以上のスクリーンにナビゲートするために、列524内のセルをクリックしてもよい。第4の実施例では、ユーザは、図5Gに関して以下で更に詳細に説明される、ネットワーク評価GUI222内の1つ以上のスクリーンにナビゲートするために、列526内のセルをクリックしてもよい。
【0057】
ユーザは、コンポーネント512の下に示されるコンポーネント514~518及び内の実験に関連する情報をソートし、フィルタし、及び/またはそうでなければ編成し、もしくはアクセスするために、コンポーネント512内のユーザインタフェース要素と対話してもよい。例えば、ユーザは、検索用語に一致する実験のリストを取り出すために、コンポーネント512の左側に沿ってテキストフィールドに検索用語を入力してもよい。別の実施例では、ユーザは、実験の異なる「ビュー」(例えば、図5Bに示されるリストビュー、グリッドビュー、ツリービューなど)にアクセスするために、テキストフィールドの右への3つの異なるアイコンをクリックしてもよい。第3の実施例では、ユーザは、実験の「直近」順序(例えば、直近から最遠への実験の順序)と「最良」順序(例えば、最優良から最悪への実験の順序)との間でトグルするために、アイコンの右への2つのボタンをクリックしてもよい。第4の実施例では、ユーザは、プロジェクトに新たな実験を追加するために、コンポーネント512の右側に沿って「+」ボタンをクリックしてもよい。
【0058】
1つ以上の実施形態では、各々の実験は、実験のための列520~524内の情報の一意な組み合わせを表すバージョン番号が割り当てられる。加えて、1つ以上の列520~524内のセルは、異なるバージョン番号と関連付けられる。示されるように、コンポーネント514~518によって表される3つの実験は、同一の名前の「顧客保持」及び異なるバージョン番号(例えば、「v3、」「v4、」「v5」)を含む。各々の実験は、異なる特徴のセット、異なるバージョンの「2019年8月メンバシップレコード」データセット(例えば、「v2」もしくは「v3」)、異なる機械学習モデル(例えば、「FF-Net」もしくは「LGBM」)、及び/または異なるモデルバージョン(例えば、「v1」もしくは「v2」)の所与の機械学習モデルを含む。
【0059】
実験と関連付けられ1つ以上の列520~524に変更が行われるとき、対応する要素のバージョン番号は、実験のバージョン番号に沿って増加される。例えば、機械学習モデルへのいずれかの修正は、機械学習モデルのバージョン番号における増加と共に、それに対して機械学習モデルの修正が行われる新たなバージョンの直近の実験(対応する新たなバージョン番号に沿った)の作成をトリガすることができる。直近の実験への追加の変更は、実験の「完了」をマーク付けする、機械学習モデルの次の訓練まで、このバージョンに包含されてもよい。別の実施例では、データセットへのいずれかの修正は、データセット、修正済みデータセットを使用するいずれかの機械学習モデル(例えば、修正済みデータセットを使用して機械学習モデル(複数可)が再訓練された後の)、及び/または修正済みデータセットを使用するいずれかの実験のバージョン番号(複数可)における増加をトリガすることができる。第3の実施例では、機械学習モデルによって使用される特徴へのいずれかの変更は、機械学習モデル(例えば、特徴を使用して機械学習モデルが再訓練された後の)及び/または機械学習モデルを使用するいずれかの実験のバージョン番号(複数可)における増加をトリガすることができる。代わりに、機械学習モデルに入力された特徴セットが変更されたが、特徴の数が変更されないとき、機械学習モデルのアーキテクチャが修正されなくてもよく、よって、機械学習モデルのバージョン番号は、同一のままであってもよい。次いで、実験のバージョン番号の増加は、増加したバージョン番号によって識別された新たな実験の作成に対応してもよく、図5Bのスクリーン内の実験についての新たな行の包含を結果としてもたらすことができる。
【0060】
図5Cは、様々な実施形態に従った、図1のGUI124の実施例のスクリーンショットである。より具体的に、図5Cは、(例えば)図5Bのスクリーンの列522の下のセルをクリックし、及び/またはGUI124内の「2019年8月メンバシップレコード」データセットについてのタブをクリックすることによって到達することができる、特徴エンジニアリングGUI204のスクリーンを示す。図5Cの実施例のスクリーンは、機械学習モデルに入力されたデータセットを参照し、選択し、作成し、及び/またはそうでなければ管理するためのいくつかのコンポーネント528~536を含む。コンポーネント530は、機械学習モデルに特徴として入力されたデータセット内の列のリストを示し、コンポーネント532は、データセット内の行及び列のテーブルを示す。コンポーネント534は、プロットに含まれることになる1つ以上の列を示し、コンポーネント536は、コンポーネント534内で指定された列(複数可)のプロットを示す。コンポーネント536は加えて、コンポーネント534内で指定された列(複数可に関連する異なるタイプのプロットを参照するために選択することができるいくつかのアイコンを含む。
【0061】
示されるように、コンポーネント532のテーブル内で列を強調すること、示唆された特徴としてコンポーネント530に列名を含めること、及び示唆されたプロット要素としてコンポーネント534に列名を含めることを生じさせる、コンポーネント532内の「参加した日付」列が選択される。ユーザは、機械学習モデルの特徴の追加を確認するために、コンポーネント530内の列名をクリックしてもよい。ユーザはまた、列内のデータによりコンポーネント536内のプロットを更新するために、コンポーネント534内の列名をクリックしてもよい。
【0062】
コンポーネント528は、データセットについてのレシピのリストを含む。いくつかの実施形態では、コンポーネント528に示される各々のレシピは、所与のバージョンのデータセット(例えば、コンポーネント532のテーブル内に示されるデータセットのバージョン)を生成するように適用された1つ以上の操作または修正の履歴を含む。ユーザは、変更の対応する履歴を通じて進むために、所与のレシピと対話してもよい。例えば、ユーザは、操作を「元に戻し」、コンポーネント532内に示されたテーブルを操作の前のデータセットの状態に戻すために、レシピ内の操作をクリックしてもよい。
【0063】
コンポーネント528はまた、所与のレシピに追加することができる2つのタイプの操作を表す「フィルタ」ボタン及び「追加」ボタンを含む。「フィルタ」ボタンは、データセットから行を除去するために選択されてもよく、「追加」ボタンは、データセットに列を追加するために選択されてもよい(例えば、列内のデータがどのように作成またはインポートされるかを指定したコードを使用して)。コンポーネント528はまた、レシピにより使用することができる他のタイプの操作を指定するためのユーザインタフェース要素により更新されてもよい。
【0064】
図5Dは、様々な実施形態に従った、図1のGUI124の実施例のスクリーンショットである。特に、図5Dは、コンポーネント528内の「追加」ボタンが選択された後の図5Cのスクリーンを示す。示されるように、図5Dのスクリーンは、「1月に参加した」と命名された新たな列を生成するためのコードが入力されるテキストボックスを含む、新たなコンポーネント538を含む。この「追加」操作は、データセット内のレコード「参加した日付」列が2019年1月に等しいときに「はい」に設定され、そうでなければ「いいえ」に設定される、二値を生成する。
【0065】
「追加」操作が完了した後、ユーザは、データセットに列を追加するために、コンポーネント538内の「完了」ボタンをクリックしてもよい。列がデータセット内にあると、ユーザは、機械学習モデルについての特徴として列を追加するためにコンポーネント530~532と対話してもよく、及び/または列にデータを包含した1つ以上のプロットを参照するためにコンポーネント534~536と対話してもよい。
【0066】
図5Eは、様々な実施形態に従った、図1のGUI124の実施例のスクリーンショットである。より具体的に、図5Eは、ネットワーク生成GUI202内の実施例のスクリーンを示す。示されるように、スクリーンは、機械学習モデルを視覚的に作成するためのコンポーネント540を含む。コンポーネント540は、機械学習モデルに入力された特徴を説明する第1の部分544を含む。例えば、部分544は、機械学習モデルについての特徴として追加された「2019年8月メンバシップレコード」データセット内の列の列名を示す。
【0067】
コンポーネント540はまた、機械学習モデルをグラフィカルに描写した第2の部分546を含む。部分546は、ニューラルネットワークの層を表すいくつかの水平六角バーを含む。対応する層についての活性化関数を表す、異なる色の矩形バーが各々のバーに続いて存在する。
【0068】
部分546内で、バーの右にユーザインタフェース要素550を表示させる、ニューラルネットワークの第1の層を表す六角バーが現在選択されている。ユーザインタフェース要素550は、層が25に設定された幅(すなわち、ニューロンの数)を有する完全結合層であることを示す。ユーザは、異なるタイプの層(例えば、畳み込み、最大プーリング、平均プーリング、長・短期記憶(LSTM)、残差、カスタムなど)を選択するために、ユーザインタフェース要素550内で「完全結合」を現在示しているドロップダウンメニューと対話してもよい。ユーザはまた、層についての異なる幅を選択するために、ユーザインタフェース要素550内で「n=25」を現在示しているテキストフィールドと対話してもよい。ユーザは加えてまたは代わりに、層の幅を変更するために、六角バーの側面をクリック及びドラッグしてもよい。
【0069】
コンポーネント540は加えて、機械学習モデルの出力を説明する第3の部分548を含む。この出力は、図5Aのスクリーンショットの「成功基準」コンポーネント504内で指定された「取り消しする」ラベルを含む。
【0070】
図5Eのスクリーンはまた、機械学習モデルを定義するために使用される数学的表現を含むソースコードを参照及び/または修正するためのコンポーネント542を含む。図5Eのスクリーンショット内で、コンポーネント542は、部分546内で選択された完全結合層に関連するいくつかの数学的表現を示す。第1の数学的表現は、層への入力「x」のドメイン及び層からの出力「y」の範囲を指定する。第2の数学的表現は、入力から出力を計算するための公式を含む。第3の数学的表現は、第2の数学的表現によって表される公式において使用される値のタイプを指定する。ユーザは、数学的表現を編集するために(スクリーン内でオーバレイとして示されるテキストフィールド内で)コンポーネント542内の個々の数学的表現を選択してもよい。ユーザインタフェース要素550のドロップダウンメニュー内でカスタム層が選択されるとき、カスタム層を定義した1つ以上の数学的表現を指定するために、コンポーネント542がユーザによって使用されてもよい。
【0071】
図5Fは、様々な実施形態に従った、図1のGUI124の実施例のスクリーンショットである。より具体的に、図5Fは、ニューラルネットワークの第1の層についての活性化関数を表す矩形バーが選択された後の、図5Eの実施例のネットワーク生成GUI202を示す。選択に応答して、部分546は、バーの右へのユーザインタフェース要素552を示す。ユーザインタフェース要素552は、「ReLU」として活性化関数を識別し、層についての異なる活性化関数を選択するために使用することができるドロップダウンメニューを含む。
【0072】
図5Fのスクリーン内で、活性化関数に関連する数学的表現を示すよう、コンポーネント542も更新される。それらの数学的表現は、活性化関数への入力「x」のドメイン及び活性化関数からの出力「y」の範囲と共に、「ReLU」活性化関数についての公式を含む。図5Eのスクリーンのように、ユーザは、数学的表現を包含したテキストフィールドにアクセスし、及び/またはテキストフィールド内で数学的表現を編集するために、コンポーネント542内の個々の数学的表現をクリックしてもよい。
【0073】
図5Gは、様々な実施形態に従った、図1のGUI124の実施例のスクリーンショットである。より具体的に、図5Gは、ネットワーク評価GUI222の実施例のスクリーンを示す。示されるように、スクリーンは、機械学習モデルと関連付けられた訓練結果をレビュー及び/または解析するためのいくつかのコンポーネント554~566を含む。
【0074】
コンポーネント554は、機械学習モデルの「訓練進捗」に関連する情報を示す。この情報は、訓練エポック、損失を計算するために使用される損失関数のタイプ、及び機械学習モデルを訓練するために使用されるバッチサイズに応じた、機械学習モデルの損失のプロットを含む。
【0075】
コンポーネント556は、訓練済み機械学習モデルの性能を、図5Aのスクリーンのコンポーネント504内で指定された「成功基準」と比較した情報を示す。この情報は、機械学習モデルが70%の精密度閾値を満たすが、90%の再現度閾値を満たさないことを示す。
【0076】
コンポーネント558は、機械学習モデルについての性能メトリックに関連する情報を示す。いくつかの実施形態では、コンポーネント558は、コンポーネント504内で指定された成功基準を反映した視覚化を表示する。図5Gの実施例のスクリーンでは、それらの視覚化は、精密度-再現度曲線、及び精密度-再現度曲線内のポイントに対応する混同行列を含む。コンポーネント556及び558内の情報は、機械学習モデルによって生じたフォールスネガティブの数を低減させることによって、90%の再現度閾値を満たすことができると判定するために使用されてもよい。
【0077】
コンポーネント560は、機械学習モデルに入力されたデータセットに関連するレシピを示し、コンポーネント562は、機械学習モデルの出力に重要であるとして(すなわち、それに対して有意な効果を有する)識別された特徴を示す。コンポーネント564は、機械学習モデルについての試験データセットからの行及び列を有するテーブルを示し(コンポーネント506内に示された区画化内で指定されるような)、コンポーネント566は、データセットに関連する1つ以上のプロットを参照するために使用されてもよい。ユーザは、他のコンポーネント554~558と対話することによって、テーブル及び/またはプロット(複数可)内のデータをフィルタしてもよい。例えば、ユーザは、コンポーネント564内のそれらのセルに関するデータセット内のレコードのサブセット(すなわち、トゥルーポジティブ、フォールスポジティブ、フォールスネガティブ、トゥルーネガティブ)及び/またはコンポーネント566内のレコードに関連するプロットを参照するために、コンポーネント558の混同行列内の個々のセルをクリックしてもよい。ユーザは、機械学習モデルの性能を改善することができる(例えば、「参加した日付」列が多数のフォールスネガティブについて1月に設定されると判定する)パターンまたは相関を識別するために、フィルタ済みデータを使用してもよい。それ故に、コンポーネント554~566は、ユーザが、所与の実験において機械学習モデルの性能を評価すること、及び図5Aのスクリーン内で識別された高レベルの目的または成功基準に性能を関係付けることを可能にすることができる。
【0078】
図6は、様々な実施形態に従った、機械学習モデルを作成する方法ステップのフローチャートである。図1~3のシステムと共に方法ステップが説明されるが、当業者は、いずれかの順序において方法ステップを実行するように構成されたいずれかのシステムが本発明の範囲内にあることを認識するであろう。
【0079】
示されるように、AI設計アプリケーション120は、機械学習モデルを視覚的に生成するための1つ以上のコンポーネントを含むユーザインタフェース(例えば、GUI124)を生成する(602)。例えば、AI設計アプリケーション120は、GUI124内で、ニューラルネットワークのニューロン、層、層タイプ、接続、活性化関数、入力、出力、及び/または他のコンポーネントを表すグラフィカルオブジェクトをレンダリングする。別の実施例では、AI設計アプリケーション120は、GUI124内で、決定木、ランダムフォレスト、勾配ブースティング木、及び/または別のタイプのツリー方式モデルのノード、エッジ、入力、出力、条件、及び/または他のコンポーネントを表すグラフィカルオブジェクトを生成する。第3の実施例では、AI設計アプリケーション120は、機械学習モデルについてのモデルタイプを識別及び/または選択するためのユーザインタフェース要素を生成する。第4の実施例では、AI設計アプリケーション120は、機械学習モデルを定義するための一部または全てのソースコードを指定するための1つ以上のテキストボックス及び/または他のタイプのユーザインタフェース要素を設ける。このソースコードは、上記説明されたように、機械学習モデルの振る舞いを記述した数学的表現を含む。ユーザは、GUI124内で視覚的方式において機械学習モデルを作成するために、グラフィカルオブジェクトと対話してもよく、並びに/またはグラフィカルオブジェクト及び/もしくはソースコードに関連するテキストを入力してもよい。
【0080】
AI設計アプリケーション120はまた、ユーザインタフェース内で、機械学習モデルと関連付けられた目的を管理し、機械学習モデルと関連付けられた実験を管理し、及び/または機械学習モデルを訓練した訓練結果と対話するための追加のコンポーネントを出力する(604)。例えば、AI設計アプリケーション120は、プロジェクトスケジュール、予測されることになるラベル、ラベルと関連付けられた性能メトリックについての閾値、並びに/または機械学習モデルについての訓練データのソース、機械学習モデルの実験バージョン、データセットバージョン、モデルバージョン、及び/もしくは機械学習モデルを含む実験ごとの実験ステータス、並びに/または精密度-再現度曲線、混同行列、機械学習モデルについての訓練データセット、及び/もしくは機械学習モデルと関連付けられた訓練結果ごとの訓練データセットと関連付けられたフィルタを参照し、修正し、及び/またはそうでなければ管理するために使用することができる、GUI124内の1つ以上のスクリーンをレンダリングしてもよい。
【0081】
AI設計アプリケーション120は、ユーザインタフェースを通じて受信されたユーザ入力に基づいて、ユーザインタフェース内の機械学習モデルの視覚的表現及び機械学習モデルを定義した数学的表現を指定したソースコードを更新する(606)。例えば、AI設計アプリケーション120は、ユーザ入力に応答して、機械学習モデルの層、活性化関数、入力、出力、及び/または別のコンポーネントの色、形状、サイズ、及び/またはテキスト記述を変更してもよい。別の実施例では、AI設計アプリケーション120は、ユーザ入力に応答して、機械学習モデルの層、活性化関数、入力、出力、及び/または別のコンポーネントを追加または除去してもよい。第3の実施例では、AI設計アプリケーション120は、数学的表現(複数可)を指定または修正するためのコンポーネントのユーザ選択及び/またはユーザのテキスト入力に基づいて、機械学習モデルのコンポーネントを定義した1つ以上の数学的表現を表示してもよい。
【0082】
AI設計アプリケーション120は、操作602~606を実行することを継続してもよく、機械学習モデルの生成が完了したかどうかについての判定を行う(608)。例えば、AI設計アプリケーション120は、ユーザが機械学習モデルを視覚的に作成するためにユーザインタフェースと対話する間、ユーザインタフェースのスクリーンを生成すること、並びに機械学習モデルについての視覚的表現及びソースコードを修正することを継続してもよい。AI設計アプリケーション120は、ユーザが機械学習モデルの訓練を要求するユーザインタフェース要素を選択し、及び/またはユーザインタフェースを介して機械学習モデルの作成が完了したことを示す他の入力を提供した後、機械学習モデルの生成が完了したと判定してもよい。
【0083】
機械学習モデルの生成が完了した後、AI設計アプリケーション120は、コンパイル済みコードにソースコードをコンパイルし(610)、コンパイル済みコードは、実行されるとき、機械学習モデルの訓練の間に機械学習モデルの1つ以上のパラメータを学習させる。より具体的に、AI設計アプリケーション120は、ソースコードのAST表現を生成してもよい。このAST表現は、ツリー構造を含み、ツリー構造内の子ノードは、定数及び変数を表し、ツリー構造内の親ノードは、演算子またはステートメントを表す。AI設計アプリケーション120は次いで、AST表現に基づいてコンパイル済みコードを生成し、機械学習モデル内のパラメータ(複数可)がソースコードの構造に基づいて学習されることになると判定する。例えば、AI設計アプリケーション120は、意味正当性についてソースコードを検査してもよく、1つ以上の割り当てられたソースにソースコード内の変数をマッピングしてもよい。AI設計アプリケーション120は次いで、学習されることになる変数として(すなわち、機械学習モデルパラメータ)割り当てられたソースを有さないいずれかの変数を識別してもよい。
【0084】
最終的に、AI設計アプリケーション120は、機械学習モデル及び機械学習モデルを含む1つ以上の実験と関連付けられた1つ以上のバージョンを増加させる(612)。例えば、AI設計アプリケーション120は、新たなアーキテクチャ、特徴のセット、及び/または訓練データセットにより機械学習モデルが「再コンパイルされ」または再訓練されるかどうかに関わらず、機械学習モデルのモデルバージョンを自動で増加させてもよい。機械学習モデルのモデルバージョンが増加されるとき、AI設計アプリケーション120は、機械学習モデルの異なるモデルバージョンが異なる実験バージョンにおいて追跡されることを保証するために、機械学習モデルを伴ういずれかの実験のバージョンを自動で増加させてもよい。
【0085】
要するに、開示される技術は、1つ以上の機械学習モデルを視覚的に作成及び監視するためのAI設計アプリケーション及びユーザインタフェースを提供する。AI設計アプリケーション及びユーザインタフェースは、機械学習モデル(複数可)を視覚的に生成し、機械学習モデル(複数可)と関連付けられた1つ以上の目的を管理し、機械学習モデル(複数可)と関連付けられた1つ以上の実験を管理し、並びに/または機械学習モデル(複数可)を訓練した訓練結果をレビューもしくは対話するためのコンポーネントを含む。ユーザは、機械学習モデル(複数可)を作成するためのコードを手動で書き込む代わりに、機械学習モデル(複数可)のアーキテクチャ及び/または機械学習モデルを定義するための数学的表現を指定するために、ユーザインタフェースと対話してもよい。ユーザがユーザインタフェースを介して機械学習モデルを作成することを終了したとき、AI設計アプリケーションは、データセットに対して機械学習モデルを訓練し、及び/または訓練済み機械学習モデルの性能を評価するために実行することができる、コンパイル済み機械コードに、数学的表現を含むソースコードを変換する。
【0086】
機械学習モデルを視覚的に生成し、ユーザ指定データセットに対して機械学習モデルを訓練し、試験し、及び検証するためのユーザインタフェースコンポーネントを設けることによって、AI設計アプリケーションは、機械学習モデルを作成及び使用することに関与するデータサイエンティスト及び/または他のユーザが、機械学習モデルの作成及び評価の間に複雑なコード、ソフトウェアスタック、及び/または操作を回避することを可能にする。よって、AI設計アプリケーションは、機械学習モデルについてのコードを書き込み、デバッグし、及びコンパイルする複数のラウンドを実行するために、追加の処理時間及び/またはリソース消費を伴い、機械学習モデルを訓練し、試験し、及び検証するためのワークフロー及びパイプラインを手動で定義及び実行し、並びに異なるバージョンの機械学習モデル、データセット、及び/または実験を追跡する従来の技術に対して、オーバヘッドを低減させる。機械学習モデル、データセット、及び関連する性能メトリックの視覚的表現は加えて、機械学習モデルの理解、機械学習モデルの性能に影響を及ぼす特徴もしくは他の属性の識別、並びに/またはより高いレベルの目標及び目的を有する性能メトリックの調整を改善することができる。次いで、AIアプリケーション及びユーザインタフェースを使用して作成された機械学習モデルは、従来のツールを使用して作成された機械学習モデルよりも良好な性能及び/または高速な収束を有することができる。それ故に、開示される技術は、機械学習モデルを設計し、訓練し、評価し、及び/または選択する際の技術的改善をもたらす。
【0087】
1.いくつかの実施形態では、機械学習モデルを作成する方法であって、機械学習モデルを視覚的に生成するための1つ以上のコンポーネントを含むユーザインタフェースを生成することと、前記ユーザインタフェースを通じて受信されたユーザ入力に基づいて、前記機械学習モデルを定義した複数の数学的表現を指定したソースコードを修正することと、実行されるとき、前記機械学習モデルの訓練の間に前記機械学習モデルの1つ以上のパラメータを学習させる、コンパイル済みコードに前記ソースコードをコンパイルすることと、を備えた、前記方法。
【0088】
2.前記ユーザ入力に基づいて、前記ユーザインタフェース内で前記機械学習モデルの視覚的表現を修正することを更に備えた、条項1に記載の方法。
【0089】
3.前記視覚的表現は、前記機械学習モデルの1つ以上の層、前記1つ以上の層内の1つ以上のニューロン、前記機械学習モデルに入力された1つ以上の特徴、及び前記機械学習モデルの1つ以上の出力を含む、条項1~2のいずれかに記載の方法。
【0090】
4.前記視覚的表現は、前記1つ以上の層と関連付けられた層タイプ、前記1つ以上の層と関連付けられた活性化関数、及び前記機械学習モデルのモデルタイプを更に含む、条項1~3のいずれかに記載の方法。
【0091】
5.前記ユーザインタフェース内で、前記機械学習モデルと関連付けられた1つ以上の目的を管理するための1つ以上の追加のコンポーネントを出力することを更に備えた、条項1~4のいずれかに記載の方法。
【0092】
6.前記1つ以上の目的は、プロジェクトスケジュール、予測されることになるラベル、前記ラベルと関連付けられた性能メトリックについての閾値、及び前記機械学習モデルについての訓練データのソースのうちの少なくとも1つを含む、条項1~5のいずれかに記載の方法。
【0093】
7.前記ユーザインタフェース内で、前記機械学習モデルと関連付けられた1つ以上の実験を管理するための1つ以上の追加のコンポーネントを出力することを更に備えた、条項1~6のいずれかに記載の方法。
【0094】
8.前記1つ以上の追加のコンポーネントは、実験バージョン、データセットバージョン、前記機械学習モデルのモデルバージョン、及び実験ステータスを含む、条項1~7のいずれかに記載の方法。
【0095】
9.前記ユーザインタフェース内で、前記機械学習モデルを訓練した訓練結果と対話するための1つ以上の追加のコンポーネントを出力することを更に備えた、条項1~8のいずれかに記載の方法。
【0096】
10.前記1つ以上の追加のコンポーネントは、精密度-再現度曲線、混同行列、前記機械学習モデルについての訓練データセット、及び前記訓練データセットと関連付けられたフィルタのうちの少なくとも1つを含む、条項1~9のいずれかに記載の方法。
【0097】
11.前記コンパイル済みコードに前記ソースコードをコンパイルすることは、前記ソースコードの抽象シンタックスツリー(AST)表現を生成することと、前記AST表現に基づいて、前記コンパイル済みコードを生成することと、前記ソースコードの構造に基づいて、前記機械学習モデル内の前記1つ以上のパラメータが学習されることになると判定することと、を含む、条項1~10のいずれかに記載の方法。
【0098】
12.前記1つ以上のコンポーネントは、前記機械学習モデルを定義するための前記ソースコードの少なくとも一部を指定するためのコンポーネントを含む、条項1~11のいずれかに記載の方法。
【0099】
13.前記コンパイル済みコードを生成すると、前記機械学習モデル及び前記機械学習モデルを含む実験と関連付けられた1つ以上のバージョンを増加させることを更に備えた、条項1~12のいずれかに記載の方法。
【0100】
14.いくつかの実施形態では、命令を記憶した非一時的コンピュータ可読媒体であって、前記命令は、プロセッサによって実行されるとき、前記プロセッサに、機械学習モデルを視覚的に生成するための1つ以上のコンポーネントを含むユーザインタフェースを生成することと、前記ユーザインタフェースを通じて受信されたユーザ入力に基づいて、前記機械学習モデルを定義した複数の数学的表現を指定したソースコードを修正することと、実行されるとき、前記機械学習モデルの訓練の間に前記機械学習モデルの1つ以上のパラメータを学習させる、コンパイル済みコードに前記ソースコードをコンパイルすることと、を備えたステップを実行させる、前記非一時的コンピュータ可読媒体。
【0101】
15.前記ステップは、前記ユーザインタフェース内で、(i)前記機械学習モデルと関連付けられた1つ以上の目的、及び(ii)前記機械学習モデルと関連付けられた1つ以上の実験を管理するための1つ以上の追加のコンポーネントを出力することを更に備えた、条項14に記載の非一時的コンピュータ可読媒体。
【0102】
16.前記1つ以上の追加のコンポーネントは、実験バージョン、データセットバージョン、前記機械学習モデルのモデルバージョン、及び実験ステータスを含む、条項14~15のいずれかに記載の非一時的コンピュータ可読媒体。
【0103】
17.前記ステップは、前記ユーザインタフェース内で、前記機械学習モデルを訓練した訓練結果と対話するための1つ以上の追加のコンポーネントを出力することを更に備えた、条項14~16のいずれかに記載の非一時的コンピュータ可読媒体。
【0104】
18.前記1つ以上の追加のコンポーネントは、精密度-再現度曲線、混同行列、前記機械学習モデルについての訓練データセット、及び前記訓練データセットと関連付けられたフィルタのうちの少なくとも1つを含む、条項14~17のいずれかに記載の非一時的コンピュータ可読媒体。
【0105】
19.前記視覚的表現は、前記機械学習モデルの1つ以上の層、前記1つ以上の層内の1つ以上のニューロン、前記機械学習モデルに入力された1つ以上の特徴、前記機械学習モデルの1つ以上の出力、前記1つ以上の層と関連付けられた層タイプ、前記1つ以上の層と関連付けられた活性化関数、または前記機械学習モデルのモデルタイプを含む、条項14~18のいずれかに記載の非一時的コンピュータ可読媒体。
【0106】
20.いくつかの実施形態では、命令を記憶したメモリと、前記メモリに結合されたプロセッサと、を備え、前記プロセッサは、前記命令を実行するとき、機械学習モデルを視覚的に生成するための1つ以上のコンポーネントを含むユーザインタフェースを生成し、前記ユーザインタフェースを通じて受信されたユーザ入力に基づいて、前記機械学習モデルを定義した複数の数学的表現を指定したソースコードを修正し、実行されるとき、前記機械学習モデルの訓練の間に前記機械学習モデルの1つ以上のパラメータを学習させる、コンパイル済みコードに前記ソースコードをコンパイルし、前記コンパイル済みコードを生成すると、前記機械学習モデル及び前記機械学習モデルを含む実験と関連付けられた1つ以上のバージョンを増加させる、ように構成されている、システム。
【0107】
請求項に記載された特許請求される要素のいずれか及び/または本出願において説明されたいずれかの要素のいずれかの組み合わせ及び全ての組み合わせは、いずれにおいても、本発明及び保護の予期される範囲内に収まる。
【0108】
様々な実施形態の説明が例示の目的のために提示されてきたが、包括的であること、及び開示される実施形態に限定されることを意図していない。説明される実施形態の範囲及び精神から逸脱することなく、多くの修正及び変形が当業者にとって明らかである。
【0109】
本実施形態の態様は、システム、方法、またはコンピュータプログラム製品として具体化されてもよい。したがって、本開示の態様は、全体的なハードウェアの実施形態、全体的なソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、またはその全てが本明細書で「モジュール」、「システム」、もしくは「コンピュータ」と全体的に称されてもよいソフトウェアの態様及びハードウェアの態様を組み合わせた実施形態の形式を取ってもよい。加えて、本開示において説明されたいずれかのハードウェア及び/もしくはソフトウェア技術、処理、関数、コンポーネント、エンジン、モジュール、またはシステムは、回路または回路セットとして実装されてもよい。更に、本開示の態様は、そこで具体化されたコンピュータ可読プログラムコードを有する1つ以上のコンピュータ可読媒体(複数可)において具体化されたコンピュータプログラム製品の形式を取ってもよい。
【0110】
1つ以上のコンピュータ可読媒体(複数可)のいずれかの組み合わせが利用されてもよい。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってもよい。コンピュータ可読記憶媒体は、例えば、それらに限定されないが、電子、磁気、光学、電磁気、赤外線、もしくは半導体システム、装置、もしくはデバイス、または上述したもののいずれかの適切な組み合わせであってもよい。コンピュータ可読記憶媒体の更に特定の例(非包括的リスト)は、以下のもの:1つ以上のワイヤを有する電気接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMもしくはフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、光学記憶装置、磁気記憶装置、または上述したもののいずれかの適切な組み合わせを含む。本明細書のコンテキストでは、コンピュータ可読記憶媒体は、命令実行システム、装置、もしくはデバイスによる使用または命令実行システム、装置、もしくはデバイスと関連した使用のためのプログラムを包含または記憶することができるいずれかの有形媒体であってもよい。
【0111】
本開示の態様は、開示の実施形態に従った方法、装置(システム)、及びコンピュータプログラム製品のフローチャートの例示及び/またはブロック図を参照して上記説明されてきた。フローチャートの例示及び/またはブロック図の各々のブロック、並びにフローチャートの例示及び//またはブロック図内のブロックの組み合わせは、コンピュータプログラム命令によって実装されてもよいことが理解されよう。それらのコンピュータプログラム命令は、マシンを生成するよう、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブルデータ処理装置に提供されてもよい。命令は、コンピュータまたは他のプログラマブルデータ処理装置を介して実行されるとき、フローチャート及び/またはブロック図のブロックまたはブロック(複数可)内で指定された機能/動作の実装を可能にする。そのようなプロセッサは、限定なしに、汎用プロセッサ、特殊目的プロセッサ、特定用途プロセッサ、またはフィールドプログラマブルゲートアレイであってもよい。
【0112】
図におけるフローチャート及びブロック図は、本開示の様々な実施形態に従ったシステム、方法、及びコンピュータプログラム製品のとり得る実装態様のアーキテクチャ、機能性、及び操作を例示する。この点で、フローチャートまたはブロック図内の各々のブロックは、指定された論理的機能(複数可)を実装するための1つ以上の実行可能命令を含む、コードのモジュール、セグメント、または部分を表してもよい。また、いくつかの代替的な実装態様では、ブロック内で注記された機能は、図において注記された順序とは異なって行われてもよいことに留意されるべきである。例えば、伴う機能性に応じて、連続して示されたブロックは、実際には、実質的に同時に実行されてもよく、またはブロックは時に、逆の順序において実行されてもよい。また、ブロック図及び/またはフローチャートの例示の各々のブロック、並びにブロック図及び/またはフローチャートの例示内のブロックの組み合わせは、指定された機能もしくは動作、または特殊目的ハードウェア及びコンピュータ命令の組み合わせを実行する特殊目的ハードウェア方式システムによって実装されてもよい。
【0113】
先述したことは、本開示の実施形態に向けられると共に、その基本的な範囲から逸脱することなく、開示の他の実施形態及び更なる実施形態が考案されてもよく、その範囲は、以下の特許請求の範囲によって決定される。
以下、本発明の好ましい実施形態を項分け記載する。
実施形態1
機械学習モデルを作成する方法であって、
機械学習モデルを視覚的に生成するための1つ以上のコンポーネントを含むユーザインタフェースを生成することと、
前記ユーザインタフェースを通じて受信されたユーザ入力に基づいて、前記機械学習モデルを定義した複数の数学的表現を指定したソースコードを修正することと、
実行されるとき、前記機械学習モデルの訓練の間に前記機械学習モデルの1つ以上のパラメータを学習させる、コンパイル済みコードに前記ソースコードをコンパイルすることと、
を備えた、前記方法。
実施形態2
前記ユーザ入力に基づいて、前記ユーザインタフェース内で前記機械学習モデルの視覚的表現を修正することを更に備えた、実施形態1に記載の方法。
実施形態3
前記視覚的表現は、前記機械学習モデルの1つ以上の層、前記1つ以上の層内の1つ以上のニューロン、前記機械学習モデルに入力された1つ以上の特徴、及び前記機械学習モデルの1つ以上の出力を含む、実施形態2に記載の方法。
実施形態4
前記視覚的表現は、前記1つ以上の層と関連付けられた層タイプ、前記1つ以上の層と関連付けられた活性化関数、及び前記機械学習モデルのモデルタイプを更に含む、実施形態3に記載の方法。
実施形態5
前記ユーザインタフェース内で、前記機械学習モデルと関連付けられた1つ以上の目的を管理するための1つ以上の追加のコンポーネントを出力することを更に備えた、実施形態1に記載の方法。
実施形態6
前記1つ以上の目的は、プロジェクトスケジュール、予測されることになるラベル、前記ラベルと関連付けられた性能メトリックについての閾値、及び前記機械学習モデルについての訓練データのソースのうちの少なくとも1つを含む、実施形態5に記載の方法。
実施形態7
前記ユーザインタフェース内で、前記機械学習モデルと関連付けられた1つ以上の実験を管理するための1つ以上の追加のコンポーネントを出力することを更に備えた、実施形態1に記載の方法。
実施形態8
前記1つ以上の追加のコンポーネントは、実験バージョン、データセットバージョン、前記機械学習モデルのモデルバージョン、及び実験ステータスを含む、実施形態7に記載の方法。
実施形態9
前記ユーザインタフェース内で、前記機械学習モデルを訓練した訓練結果と対話するための1つ以上の追加のコンポーネントを出力することを更に備えた、実施形態1に記載の方法。
実施形態10
前記1つ以上の追加のコンポーネントは、精密度-再現度曲線、混同行列、前記機械学習モデルについての訓練データセット、及び前記訓練データセットと関連付けられたフィルタのうちの少なくとも1つを含む、実施形態9に記載の方法。
実施形態11
前記コンパイル済みコードに前記ソースコードをコンパイルすることは、
前記ソースコードの抽象シンタックスツリー(AST)表現を生成することと、
前記AST表現に基づいて、前記コンパイル済みコードを生成することと、
前記ソースコードの構造に基づいて、前記機械学習モデル内の前記1つ以上のパラメータが学習されることになると判定することと、
を含む、実施形態1に記載の方法。
実施形態12
前記1つ以上のコンポーネントは、前記機械学習モデルを定義するための前記ソースコードの少なくとも一部を指定するためのコンポーネントを含む、実施形態1に記載の方法。
実施形態13
前記コンパイル済みコードを生成すると、前記機械学習モデル及び前記機械学習モデルを含む実験と関連付けられた1つ以上のバージョンを増加させることを更に備えた、実施形態1に記載の方法。
実施形態14
命令を記憶した非一時的コンピュータ可読媒体であって、前記命令は、プロセッサによって実行されるとき、前記プロセッサに、
機械学習モデルを視覚的に生成するための1つ以上のコンポーネントを含むユーザインタフェースを生成することと、
前記ユーザインタフェースを通じて受信されたユーザ入力に基づいて、前記機械学習モデルを定義した複数の数学的表現を指定したソースコードを修正することと、
実行されるとき、前記機械学習モデルの訓練の間に前記機械学習モデルの1つ以上のパラメータを学習させる、コンパイル済みコードに前記ソースコードをコンパイルすることと、
を備えたステップを実行させる、前記非一時的コンピュータ可読媒体。
実施形態15
前記ステップは、前記ユーザインタフェース内で、(i)前記機械学習モデルと関連付けられた1つ以上の目的、及び(ii)前記機械学習モデルと関連付けられた1つ以上の実験を管理するための1つ以上の追加のコンポーネントを出力することを更に備えた、実施形態14に記載の非一時的コンピュータ可読媒体。
実施形態16
前記1つ以上の追加のコンポーネントは、実験バージョン、データセットバージョン、前記機械学習モデルのモデルバージョン、及び実験ステータスを含む、実施形態15に記載の非一時的コンピュータ可読媒体。
実施形態17
前記ステップは、前記ユーザインタフェース内で、前記機械学習モデルを訓練した訓練結果と対話するための1つ以上の追加のコンポーネントを出力することを更に備えた、実施形態14に記載の非一時的コンピュータ可読媒体。
実施形態18
前記1つ以上の追加のコンポーネントは、精密度-再現度曲線、混同行列、前記機械学習モデルについての訓練データセット、及び前記訓練データセットと関連付けられたフィルタのうちの少なくとも1つを含む、実施形態17に記載の非一時的コンピュータ可読媒体。
実施形態19
前記視覚的表現は、前記機械学習モデルの1つ以上の層、前記1つ以上の層内の1つ以上のニューロン、前記機械学習モデルに入力された1つ以上の特徴、前記機械学習モデルの1つ以上の出力、前記1つ以上の層と関連付けられた層タイプ、前記1つ以上の層と関連付けられた活性化関数、または前記機械学習モデルのモデルタイプを含む、実施形態14に記載の非一時的コンピュータ可読媒体。
実施形態20
命令を記憶したメモリと、
前記メモリに結合されたプロセッサと、を備え、前記プロセッサは、前記命令を実行するとき、
機械学習モデルを視覚的に生成するための1つ以上のコンポーネントを含むユーザインタフェースを生成し、
前記ユーザインタフェースを通じて受信されたユーザ入力に基づいて、前記機械学習モデルを定義した複数の数学的表現を指定したソースコードを修正し、
実行されるとき、前記機械学習モデルの訓練の間に前記機械学習モデルの1つ以上のパラメータを学習させる、コンパイル済みコードに前記ソースコードをコンパイルし、
前記コンパイル済みコードを生成すると、前記機械学習モデル及び前記機械学習モデルを含む実験と関連付けられた1つ以上のバージョンを増加させる、
ように構成されている、システム。
図1
図2
図3
図4
図5A
図5B
図5C
図5D
図5E
図5F
図5G
図6