編集者注:この記事は、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はどこまで発展したのか?
>>: クラウドコンピューティングの人工知能の開発は遅いものの、注目を集めています
ChatGPT がハッカーによって「ハッキング」された場合、OpenAI はどのように対応するのでし...
人工知能は急速に発展しており、その理論と技術はますます成熟し、その応用分野は絶えず拡大しています。人...
[[261281]]新興技術への投資家として、私は既存の市場を改善したり、新しい市場を創出したりで...
[[355787]]画像ソース: https://pixabay.com/images/id-537...
1. アトラスの概要まず、ナレッジグラフの基本的な概念をいくつか紹介します。 1. ナレッジグラフと...
スーパーコンピュータは、従来のコンピュータでは解決できない問題を解決するためによく使用されます。しか...
脳信号から対応する視覚刺激を再構築することは、意義深く困難な作業です。これまでの研究では、一部の自然...
「2018年中国人工知能商業上陸研究報告」によると、過去1年間、業界は人工知能に大きな期待を寄せ、...
共同通信によると、国土交通省は月面に滞在できる基地を建設するため、無人重機の開発を進めている。日本は...
AIOps が今日最も人気のある用語の 1 つになったことは間違いありません。厳密に言えば、IT 運...