コードの後ろの機械学習のプログラマは、スタイルによって決定することができます

コードの後ろの機械学習のプログラマは、スタイルによって決定することができます

出典:ATYUN AIプラットフォーム 

自動化ツールは現在、正確に限り、彼らが持っているように、十分なトレーニングデータが利用可能である、著者のフォーラムの投稿を識別することができます。しかし、新しい研究では、このサンプルは、このようなコードなどの人工言語に適用することができることを示唆しています。これは、ソフトウェア開発者は、識別のためのメッセージを残したことが判明しました。

アソシエイトドレクセル大学でコンピュータサイエンスの教授、レイチェルGreenstadtと彼の元博士課程の学生、ジョージ・ワシントン大学Aylin Caliskanで今助教授、コードやスタイルを見つけることは、表現の他の形態と同様に、完全に匿名ではありません。金曜日のDEFCONのハッカーの会議では、彼らは、その使用の機械学習技術は、いくつかの研究を行ってコードサンプルデ匿名化の作者のデモンストレーションを行います。例えば、オープンソース開発者の何千人もが世界に貢献するために、特にために、自分の仕事は盗作論争のために有用であるかもしれないが、それはまた、プライバシーの感覚を持っています。

コードは、匿名化する方法

ここでは、研究者がコードの一部は、誰に属し発見するために機械学習を使用する方法の簡単な説明があります。まず、コードサンプルアルゴリズムが設計に自分の好きなすべての機能を識別します。多くの異なる特性があります。その上の単語の選択を、一緒に道を入れ、文の長さ、および:自然言語のほぼすべての側面が存在していると思います。その後GreenstadtとCaliskanこれらの機能は、実際に開発者の唯一の際立った特徴を含むように狭く、約50に数十万人からダウンリストが表示されます。

研究者は、このような書式設定コードなどの低レベルの機能に依存しません。代わりに、彼らはむしろ、その成分のいずれよりもコードの基本的な構造を反映し、「抽象構文木を」、作成しました。彼らの手法ではなく、彼らは、段落の各行をインデントするかどうかよりも、同様の優先順位の誰かの文の構造です。

この方法はまた、別のコードサンプルを見つけたときに知って算術を教えるために誰かの実施例が必要です。ランダムポップGitHubのアカウントとは、スニペットを公開する場合、彼らは彼らが、これは、彼らが前に見たことがなかった開発者)であると言うかもしれません使用することができる唯一のサンプルを持っているので、GreenstadtとCaliskanは、その背後に人を識別することはできません。しかし、GreenstadtとCaliskanはあなたに起因するコードの生活や仕事を判断する必要はありません。これは、わずか数のサンプルを取ります。

例えば、2017年の論文で、Caliskan、Greenstadtと他の二つの研究者が高度で、GitHubのウェブサイト上の小さなスニペットリポジトリは別のエンコーダのエンコーダゾーンから1を区別するために十分であることが示されています精度。

最も印象はCaliskanや他の研究者がプログラマを解除匿名化するためだけにコンパイルされたバイナリコードを使用して、別の論文で述べた、ということです。コードの一部を書く開発者が完了した後、プログラムは、バイナリと呼ばれる機械によって読み取り可能な0と1の系列、に変換するコンパイラと呼ばれます。人間の場合は、ほとんどががらくたのように見えます。

開発者のユニークなスタイル要素を保持したままCaliskanと彼女の他の共の研究者は、C ++プログラミング言語にバイナリファイルを逆コンパイルすることができます。あなたが論文を書くと別の言語に変換するために、Googleの翻訳を使用して、想像してみてください。テキストは完全に違って見えるかもしれませんが、あなたはまだあなたの署名の構文などに埋め込まれた要素を書きながら。コードにも。

「スタイルが保存され、」Caliskanは語りました。「物事は個人学習に基づく場合には、非常に強力なスタイルがまだあります。」

2元実験のために、Caliskanおよび他の研究者は、今年のコード例Google Codeのジャムコンテストを使用しました。時間の96%以内機械学習アルゴリズムが正しく、各プログラマコードは8つのサンプルを使用して100人の独立したプログラマーのグループを識別します。試料の量が600をプログラマに拡大した場合でも、アルゴリズムは依然として正確に時間の83%内で識別すること。

プライバシーと盗作への影響

CaliskanとGreenstadtは、開発者が雇用の契約に非競争条項に違反するかどうかを自分の仕事は、学生がプログラムをコピーするかどうかを決定するために使用することができると言う、または。セキュリティ研究者は、マルウェアの特定のタイプを作成することができます誰が決定するのを助けるためにそれを使用する場合があります。

さらに心配独裁政府が、このようなレビュー迂回ツールの背後にある個人を識別するために、匿名化技術を使用することができるということです。研究はまた、オープンソースプロジェクトの開発者は、同じGitHubのアカウントを使用している場合は特に、プライバシーの影響を与えました。

Greenstadtは言った:「人々はこのような場合には、100%自分のアイデンティティはしばしば非常に困難である隠す、ということを理解すべきです。」

例えば、GreenstadtとCaliskanは、いくつかの既製の混乱の方法、ソフトウェアエンジニアはコードをより複雑にすることが判明したと開発者のユニークなスタイルの隠された側面におけるので、より多くのセキュリティツールは成功しませんでした。研究者は、将来的には、プログラマが独自のスタイルを隠すために、より洗練された方法を使用する可能性があるという。

Greenstadtは言った:「私たちは続けている間、私たちはこれらの事は一種の混乱し、私はそれはあなたが常にトレーサブルで行うすべての終わりになると信じていないされて非表示にするには、一つのことを見つけるだろう、と思います。いずれにしても、私はありません願っています。」

例えば、ワシントン大学のチームが率いるルーシーSimkoによって別の論文では、プログラマは、それが他の人によって作成された信じるようにアルゴリズムをだますためのコードを作成することができることを見出しました。チームは、開発者が、彼らが偽の特別な訓練をしない場合でも、彼らの「コード化された署名を」だますことが分かりました。

今後の研究

GreenstadtとCaliskanは、プログラミングの本質に、いくつかの興味深い洞察を発見しました。例えば、彼らは経験豊富な開発者がより簡単に初心者よりも認識していることが分かりました。あなたはより多くの熟練した、あなたの仕事は、よりユニークになります。プログラマは、多くの場合、スタックオーバーフローのようなサイトから初心者のソリューションは、コードをコピーして貼り付けるので、これは、部分的かもしれません。

同様に、彼らはサンプルコードの問題を解決することはより困難所有権を決定することも容易になりました。62プログラマのセットを使用して、7つの簡単な質問、匿名化するために自分の仕事のために、研究者、正確性を解決するために、各プログラマは90%でした。研究者は、95%の正解率を7つの難しい問題のサンプルを使用した場合。

将来的には、GreenstadtとCaliskanは、他の要因がこのようなプロジェクトに取り組んでいたときに何が起こるか同じ組織のメンバーとして、人のコーディングスタイルにどのように影響するかを学びたいと思っています。彼らはまた、問題のコーディングのさまざまな方法で様々な国から、そのような人かどうかを探求します。例えば、予備的研究では、彼らはカナダと中国の開発者は、90%以上の正解率によって調製したコードサンプルを区別することを見出しました。

もう一つの問題は、標準化された方法は、異なるプログラミング言語で同じ属性メソッドを使用するかどうかです。これまでの彼らのアプローチが有効であることが分かっているが、現在、研究者は強調し、匿名に、神秘的なプロセスのまま。

Greenstadtは、「我々はまだ所有権を決定することができます本物の何かを作るかを理解しようとしている。」と述べました

これはATYUN切り替え人工知能、元のリンクをメディアプラットフォームを:コードの後ろにプログラマを機械学習は、スタイルによって決定することができます

その他の推奨

GiphyザMLモデルは、2300 GIFセレブ面で98%の精度を識別することができます

インテルのオープンソースデータタグツールキットCVAT

AIの研究者は、神経変性疾患を識別するためのプラットフォームを開発しています

OpenAIは、大規模なマルチエージェント環境Nueral MMOゲームをリリース

公式世間の注目ATYUN数、事業協力へようこそやコンテンツを提供、お問い合わせくださいEメール:bd@atyun.com
公式世間の注目ATYUN数、事業協力へようこそやコンテンツを提供、お問い合わせくださいEメール:[email protected]

 

おすすめ

転載: blog.csdn.net/whale52hertz/article/details/90694455