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 を使用した実験データを使用して、そのソフトウェア生成機能とパフォーマンスを実証します。

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

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

ブログ    
ブログ    

推薦する

機械学習の実際の応用は何ですか?

簡単に言えば、機械学習とは、非常に複雑なアルゴリズムと技術に基づいて、人間の行動を無生物、機械、また...

...

あるいは人間の目よりも鮮明です!世界初の3D人工眼球が発売され、何百万人もの人々が視力を取り戻す

[[327384]] 5月24日、メディアの報道によると、香港科技大学の研究者らがネイチャー誌に発表...

AutoXの完全無人タクシーが試験運用のため正式に一般公開

1月28日、深センの大手自動運転企業AutoXは自動運転の新たな段階に入り、平山区に中国初の完全自動...

IDC:2026年までに国内市場の端末のほぼ半数がハードウェアレベルのAIエンジン技術を搭載

市場調査会社IDCは7月25日、近年の人工知能の急速な進化と発展により、ビッグデータモデルはますます...

...

株式取引における人工知能の応用

1 か月以上の努力の末、私たちはついに、単純な完全接続ニューラル ネットワークを使用して翌日の株価の...

これを読めば、大きな整数の乗算と分割統治アルゴリズムを学ぶことができます。

[[352004]]データ暗号化処理には多くの複雑な暗号化アルゴリズムがあり、これらの暗号化アルゴ...

AIは50個の三角形を使って、ポストモダンな雰囲気を持つモナリザの抽象版を描きます

[[425382]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

...

詳細な分析:AI LLMフレームワークの主要コンポーネントとその機能

この記事では、AI フレームワークの高レベルなアーキテクチャを詳しく説明し、その内部コンポーネントと...

最新の米国の世論調査によると、人工知能技術に対する国民の信頼は昨年に比べて低下している。

ChatGPTなどのツールのリリース後、生成型人工知能(GenAI)が人工知能技術における注目の的...

...