AIシステムが初めて自律プログラミングを実現し、初心者プログラマーを上回る成果を達成!

AIシステムが初めて自律プログラミングを実現し、初心者プログラマーを上回る成果を達成!

AI による自動プログラミングを可能にすることは、人工知能分野における長年の夢の 1 つです。現在、ブルームバーグとインテル研究所の2人の研究者が、完全なソフトウェアプログラムを自動生成できる初のAIシステム「AIプログラマー」を実現したと主張している。この「AIプログラマー」は、遺伝的アルゴリズムとチューリング完全な言語を使用して、理論的にはあらゆる種類のタスクを完了できるプログラムを開発する。 AI自動プログラミングの時代が始まりました。

AI が自動的にプログラミングできるようにすることは、コンピューター科学者の長年の夢でした。現在、この分野での成果は、AI がプログラミング言語を自動補完したり、簡単な加算プログラムを実行したりできるようにするなど、非常に限られています。本日ご紹介する作品は、完全なソフトウェアプログラムを自動生成できる世界初の機械学習システム「AIプログラマー」です。

研究者らは、このシステムを使って、完全に機能するプログラムは実際に自動的に生成できるという長年の仮説を証明したと述べている。特にこの作業では、AI プログラマーは機械学習の遺伝的アルゴリズムを使用して複雑な命令をシミュレートします。 AI プログラマーによって生成されたプログラムは、今では初心者の人間のプログラマーによって書かれたプログラムと同じくらい複雑になっています。しかし研究者たちは、AI プログラマーが作成したプログラムは従来の範疇を超え、人間の時間や知恵に制限されないと考えています。

AI によって書かれたプログラムは、テストの複雑さとコンピューティング リソースの間の最適なポイントを単純に見つけます。つまり、可能性は無限大です。

研究者らはまた、現在のプログラミング言語は人間向けであり、MLベースのプログラミングには適していないため、新しい機械指向のプログラミング言語を再考し設計する必要があると述べた。 「ML ドライバー生成の将来を考えるとき、典型的なプログラム言語作成へのアプローチを放棄して再考する必要があります。」

そうすることによってのみ、AI システムによって駆動され、人間の創造性とデザインによって導かれるコンピューター ソフトウェア開発の新しい未来を思い描き始めることができると研究者らは書いている。

AIプログラマーソフトウェアアーキテクチャ

図からわかるように、人間が操作するのはごくわずかです。最初に指示を入力し、最後に特定のタスクに適した機能を受け取るだけです。残りは機械が行います。

AIプログラマー:遺伝的アルゴリズムを使用して、理論的にはあらゆる種類のタスクを完了できるプログラムを自動的に生成します。

論文によると、研究者たちは AI プログラマーにソフトウェアを生成させるために、8 つの命令のみを含む型指定のないプログラミング言語を選択しました。

[[206762]]

AI プログラマーが使用するプログラミング言語は、表 1 に示すようにチューリング完全です。理論的には、チューリング完全なプログラミング言語は、時間とメモリに制限がない限り、あらゆるプログラミングタスクを処理できます。本質的に、これらの特性を備えたプログラミング言語であれば、さまざまなプログラミングの問題を解決できます。同様に、AI プログラマーによって生成されたソフトウェアはすべてのタスクを完了できます。

この保証を踏まえて、AI プログラマーの核心である遺伝的アルゴリズムについて見てみましょう。

遺伝的アルゴリズムを使用してソフトウェア プログラムを生成するには、まずゲノムを作成する必要があります。ゲノムとは、1 つの単位としてまとめられた遺伝子の集合です。 AI プログラマーのゲノムは、上記の表 1 の遺伝子範囲の列に示すように、各固有の命令が 0 から 1 の間の固定値の範囲を持つ浮動小数点値の配列としてエンコードされます。

ゲノムが作成されると、AI プログラマーはそれを対応するプログラムに変換して実行し、プログラムの出力に基づいて結果のプログラムに適合度を割り当てます。生成されたプログラムが与えられたタスクの解決に近づくほど、その適応度は高くなり、次の世代に進化し続ける可能性が高くなります。 AI プログラマーは、各世代で、交差と突然変異に加えてランダム選択を活用して、わずかなランダムな摂動を含み、ターゲットタスクを解決するために親よりも優れたゲノムとなる可能性のあるサブプログラムを作成します。

図 3 は浮動小数点配列からゲノムを構築する例を示しています。各値の範囲は、プログラミング言語の特定の命令にマッピングされます。当初、これらの値はランダムであったため、生成されたプログラムは正しく機能しませんでした。ただし、有効な命令を実行して実行するものが 1 つまたは 2 つあることは間違いありません。プログラムの実行が成功すればするほど、そのコードが将来のより成功した世代でも引き続き使用される可能性が高くなります。

子孫を作るために、親は自分の遺伝子の一部を子供に与えます。このプロセスは図 4 に示されています。それぞれの子供は、両親のプログラミング指示を受け継ぐだけでなく、特定の遺伝子に対する制御されたランダムな変動である突然変異を経験する可能性もあります。これにより、特定の遺伝子の値が変更され、結果として得られるプログラミング命令が変わり、プログラム全体が変わります。

実行可能プログラムは、図 5 に示すように、実行ステータスに応じてランク付けされます。その中で、特定のプログラムはゲノムプールから直ちに削除され、成功したプログラムは新しい子孫を生み出すために引き継がれます。

AI プログラマーは結果を使用して、「Hello World」を出力し、文字列を反転し、加算、減算、乗算し、フィボナッチ数列を出力します...

AI プログラマーは、C#.NET で設計されたモジュール フレームワークで構成されています。遺伝的アルゴリズムを実行するエンジン、ゲノム エンコーダーとデコーダー、シミュレーション プログラムを実行するためのサンドボックス インタープリター、コードをバイナリ実行可能ファイルに変換するコンパイラーが含まれています。 AI プログラマーはもともと C# を使用して設計されましたが、設計原則は C# の使用に限定されないことに注意することが重要です。

研究者らは、AI Programmer の適応型テスト ソフトウェア フレームワークは拡張可能であり、開発されていると指摘しています。ユーザーは、無数のカスタマイズされたソフトウェアを自分で設計し、最終的にはシステムの遺伝的アルゴリズム (GA) の生成とソフトウェア プログラムの進化を導くことができます。

ターゲット プログラムが「Hello World」などの文字列を生成するように設計されている場合 (上記を参照)、テストのスコアは文字列内の数字になる可能性があります。ただし、AI プログラマーはバイト レベルでコードを生成するため、テスト スコアでは出力文字の増分差を考慮する必要があります。

研究者らは、AI プログラマーを使用して多くのソフトウェア プログラムを生成できると述べています。表 2 は生成されたプログラムの一覧です。

当初、研究者たちは AI プログラマーに「hi」を出力する非常に単純なプログラムを生成させました。 5700世代後、テストは成功しました。生成されたコードを図 9 に示します。

580,900 世代後、図 10 に示すように、「hello world」が生成されました。

6,057,200 世代後、AI プログラマーは図 11 に示すように「私はすべての人間を愛しています」を正常に生成しました。

AI プログラマーは文字列を反転するプログラムを生成します。生成されたコードを図 13 に示します。

図15に示すように、AIプログラマーは92,400世代後に加算プログラムを生成し、177,900世代後に減算プログラムを生成できました。

図16に示すジェネレータは、2つの初期入力値からフィボナッチ数列を出力できます。

論文: AI プログラマー、遺伝的アルゴリズムを使用してソフトウェア プログラムを自動作成

まとめ

本稿では、人間の関与を最小限に抑えて完全なソフトウェア プログラムを自動的に生成できる初の機械学習 (ML) システムを紹介します。 「AI プログラマー」と呼ばれるこのシステムは、遺伝的アルゴリズム (GA) と厳密に制約されたプログラミング言語に基づいており、ML 検索空間のオーバーヘッドを最小限に抑えます。 AI Programmer の斬新さは、(i) 効率性と安全性のために手作りのインタープリターを組み込んだ独自のシステム設計、および (ii) ランダム化された命令と遺伝子の結合、プログラミング言語固有のゲノム構築と除去の手法を組み込んだ遺伝的アルゴリズムの強化に一部起因しています。 AI Programmer のシステム設計を詳しく説明し、システムがどのように動作するかを詳しく説明するとともに、主流の CPU を使用した実験データを使用して、そのソフトウェア生成機能とパフォーマンスを実証します。

<<:  機械学習の決定木とランダムフォレストモデル

>>:  データサイエンスにおける一般的な課題は何ですか?

ブログ    

推薦する

Java プログラミング スキル - データ構造とアルゴリズム「循環リンク リストとジョセフ問題」

[[386837]]ジョセフ問題1、2、...n と番号が付けられた n 人が輪になって座り、番号...

Weibo の背後にあるビッグデータの原理を探る: 推奨アルゴリズム

推薦システムは早くから誕生していたが、本格的に注目されるようになったのは、「Facebook」に代表...

Fudan DISC、クロスビジュアル言語モダリティ事前トレーニングモデルMVPTRを発表

復旦大学データインテリジェンスおよびソーシャルコンピューティング研究所復旦大学のデータインテリジェン...

OpenAI、自然言語をコードに翻訳するAIシステムCodexのテストを開始

マイクロソフトなどの企業から強力なサポートを受けて、人工知能のスタートアップ企業であるOpenAIは...

今後10年の予測レポート:高齢化が進み、幼児市場が縮小、AIが様々な製品に浸透

IDCはこのほど、2019年および今後10年間の中国の情報通信分野と技術応用に関するトップ10予測を...

人工知能による空中戦闘の時代が到来し、エースパイロットは職を失うことになるのだろうか?

最近、J-10やJ-20など我が国の先進的な国産戦闘機の開発に成功した中国航空工業集団の成都航空機設...

DeepMindらが優秀論文賞を受賞、IBMスーパーコンピュータDeep Blueが古典に、IJCAI2023の賞が発表

国際人工知能合同会議(IJCAI)は、AI分野におけるトップクラスの学術会議の一つです。第1回会議は...

AIは万能か? AI がまだ直面している課題は何ですか?

[はじめに] 人工知能(特にコンピュータビジョンの分野)に関しては、誰もがこの分野における継続的な...

人工知能が物流の自動化を変える

[[423132]]自動化では、テクノロジーを利用して、さまざまなタスクにおける人間の労力を強化しま...

...

Google はデータセンター向けの次世代地熱エネルギーを開発するために AI を応用している

[[401455]]地熱発電は地球の地下の自然の熱を利用して電気を生み出すので、魅力的な点がたくさん...

...

TransformerはAI分野を支配するのでしょうか?結論を出すのは時期尚早だ

自然言語処理タスクから始まり、画像分類と生成の分野で活躍する無敵のトランスフォーマーは、次の伝説とな...

人工知能の知られざる12の秘密

[[375984]] [51CTO.com クイック翻訳] 人工知能技術がさまざまな業界でますます使...

...