AIシステムが初めて真の自律プログラミングを実現:遺伝的アルゴリズムを使用して初心者プログラマーを上回る

AIシステムが初めて真の自律プログラミングを実現:遺伝的アルゴリズムを使用して初心者プログラマーを上回る

編集者注:この記事は、WeChatのパブリックアカウント「New Intelligence」(ID:AI_era)によって翻訳され、出典:arXiv、Wen FeiとChang Peiqiによって翻訳され、36Krによって許可を得て公開されました。

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

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

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

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

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

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

AIプログラマーのソフトウェアアーキテクチャ。図からわかるように、人間が操作するのはごくわずかです。最初に指示を入力し、最後に特定のタスクに適した機能を受け取るだけです。残りは機械が行います。

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

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

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

<<:  Tencent Youtu:ビジュアルAIはどこまで発展したのか?

>>:  クラウドコンピューティングの人工知能の開発は遅いものの、注目を集めています

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

科学研究だけでなく、水中ロボットの消費者への応用も有望である。

近年、政策、技術、資金の推進により、我が国のロボット開発は目覚ましい成果を上げています。「空の月まで...

世界最高の AI 教育会社はどこでしょうか?米国、中国、欧州、イスラエルが先頭を走る

GoogleがモバイルファーストではなくAIファーストを語り、テンセントがAIをあらゆるものに取り入...

南京大学の周志華氏と清華大学の胡世民氏が学者候補に選出されました!コンピュータ分野合計7名

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

...

企業がAIベースのツールを使用して脆弱性を管理する方法

脆弱性の管理は、セキュリティ専門家にとって最優先事項の 1 つです。セキュリティ チームは、サイバー...

スマートホーム技術を通じて AI が家を乗っ取る可能性はあるでしょうか?

スマートホーム テクノロジーは、家電製品、ホーム セキュリティ、照明、エンターテイメントを強化します...

人工知能の今後の発展における3つの大きなトレンド、それぞれが驚きである

人工知能は、知能機械や機械知能とも呼ばれ、人間が作った機械が示す知能を指します。人工知能は、医療、テ...

AIは地球を救うことができるのか

メタバースは現実世界を揺るがしており、未知の部分が多すぎるため、賛否両論の評価を受けています。しかし...

...

人工知能の登場により、一人暮らしの高齢者の介護は難しくなくなり、高齢者介護はテクノロジーの時代に入った

[[389635]]私の国では高齢化が進み、高齢者介護は長い間、社会全体で広く関心を集めるテーマとな...

深度に関するあらゆる情報: 大規模なラベルなしデータから深度推定を解き放つ

この記事は、Heart of Autonomous Driving の公開アカウントから許可を得て転...

...

...

機械学習を使用して Airbnb のリスティングの価格を予測する

[[202603]]ギリシャ、エーゲ海、イメロヴィグリの Airbnb の美しい景色導入データ プロ...

マイクロソフトCEOナデラ氏:AIはルールを変えるインターネットの波のようなもの

8月18日、マイクロソフトが人工知能(AI)技術の研究開発に注力し、OpenAIに100億ドル以上を...