独自のニューラル ネットワークをトレーニングする方法


最近、人工知能 (AI) が世界のほとんどを動かす準備ができているように見えます。皮膚がんの検出、 探しているFacebookでのヘイトスピーチ、さらにはスペインの警察報告書に嘘の可能性があると警告。しかし、AI はすべて巨大企業や政府によって運営されているわけではありません。いくつかのアルゴリズムをダウンロードして自分で試してみると、しばしば面白い結果が得られます。

そこにあるのは、偽のバンド名が満載の偽コーチェラ ポスター、多数の実際のバンド名をニューラル ネットワークに入力し、独自のバンド名をいくつか考え出すように依頼することによって作成されます。そこには、同様の方法で作成したレシピここで、「バーベキュービーフ」には「ビール 1 杯 - 角切り」が必要です。そして私のお気に入り、ジャネール・シェーンの作品です。AIが生成したペイントカラー(自分にタグを付けてください、私はドークウッドです)。

これらはすべてで作られましたニューラルネットワーク、私たち自身の脳のネットワークのような性質をモデルにした AI の一種。ニューラル ネットワークをトレーニングするには、レシピなどの入力を与えます。ネットワークは、学習するにつれて、ニューロン (模倣脳細胞) 間の結合の一部を他の結合よりも強化します。そのアイデアは、入力がどのように機能するか、たとえばどの文字が他の文字に従う傾向があるかという規則を理解することです。ネットワークがトレーニングされたら、ネットワークに独自の出力を生成するように依頼したり、部分的な入力を与えて残りを埋めるように依頼したりすることができます。

しかし、コンピューターは実際には、たとえばレシピ作成のルールを理解していません。ビールが材料になることや、物を立方体に切ることができることは知っていますが、ビールがそのようなものではないことを誰も教えたことはありません。ほぼ正しいように見えても、いくつかの基本的なルールを誤解している出力は、多くの場合、最も陽気です。

シェーンがツイッターで中学校のコーディングの授業でこんなことをしたと言うまで、私はこうしたふざけた行為を遠くから見ているだけで幸せでした。より良いアイスクリームの名前を生成彼女が持っていたよりも。そして私はこう思いました。子供たちこれはできる、私はこれができる。

初めてのニューラル ネットワークをトレーニングする方法

私はシェーンがアイスクリームのフレーバーに使用したのと同じツールキット、つまり Python モジュールから始めました。テキストジェネ、Buzzfeedのマックス・ウルフ著。必要になりますコマンドラインの基本的な知識ただし、プログラミング言語/インタプリタがインストールされている任意のシステム (Mac、Linux、Windows) で動作します。パイソン

独自のニューラル ネットワークをトレーニングする前に、まず入力が必要です。たとえば、中学校のクラスは何千ものアイスクリームのフレーバーのリストから始まりました。どちらを選択する場合でも、少なくとも数百の例が必要になります。数千の方が良いでしょう。もしかしたらそうしたいかもしれませんすべてのツイートをダウンロードする、ネットワークに新しいツイートを生成するよう依頼します。またはチェックアウトウィキペディアのリストのリストアイデアのために。

何を選択しても、1 行に 1 つの項目を含むテキスト ファイルに作成します。これには、コピーアンドペーストやスプレッドシートの創造的な作業が必要になる場合があります。あるいは、コーディングに慣れている場合は、データを送信するために醜い Perl スクリプトを作成することもできます。私は Perl スクリプトが苦手なタイプですが、データ セットの 1 つとして Lifehacker の見出しが必要になったとき、分析チームに見出しの大きなリストを依頼したところ、まさに必要なものをメールで送ってくれました。適切に質問することは、過小評価されているコーディング スキルです。

(ライフハッカーの見出しを自分のニューラル ネットワークに送り込みたい場合は、これがそのリストです。そのうち約10,000個です。)

新しいプロジェクト用のフォルダーを作成し、2 つのスクリプトを作成します。まず、train.py というものがあります。

from textgenrnn import textgenrnn
t = textgenrnn()
t.train_from_file(‘input.txt’, num_epochs=5)

このスクリプトは、ニューラル ネットワークに入力を読み取り、そのルールがどうあるべきかを考えさせます。スクリプトには、変更できるものがいくつかあります。

  • t = textgenrnn()スクリプトを初めて実行するときは問題ありませんが、後でもう一度実行したい場合は、実行時に魔法のようにフォルダーに表示された .hdf5 ファイルの名前を入力します。その場合、行は次のようになります。t=textgenrnn(‘textgenrnn_weights.hdf5’)

  • ‘input.txt’は、1 行に 1 つの見出し/レシピ/ツイートなどを含むファイルの名前です。

  • num_epochsファイルを処理する回数です。ニューラル ネットワークは学習時間を長くすればするほど改善するため、2 または 5 から始めてどれくらいの時間がかかるかを確認し、そこから増やしていきます。

ネットワークのトレーニングには時間がかかります。ラップトップでスクリプトを実行している場合、1 エポックに 10 分から 15 分かかる場合があります (データ セットが大きいほど時間がかかります)。あなたまたは友人のゲーム用コンピューターなど、頑丈なデスクトップにアクセスできる場合は、作業がより速く進みます。大きなデータ セットがある場合は、数十、さらには数百のエポックを要求し、一晩実行させたい場合があります。

次に、 spit_out_stuff.py という名前の別のスクリプトを作成します (私が付けたものよりも適切な名前を自由に付けることができます)。

from textgenrnn import textgenrnn
t = textgenrnn(‘textgenrnn_weights.hdf5')
t.generate(20, temperature=0.5)

ここが楽しい部分です!上記のスクリプトは、20 の興味深い新しい点を提供します。最後の行の重要な部分は次のとおりです。

  • 生成するものの数: ここでは 20 です。

  • 創造力のダイヤルのような温度。 0.1 では、非常に基本的な出力が得られますが、入力したものよりもおそらくさらに退屈なものになります。1.0 では、出力が非常にクリエイティブになり、実際の単語ですらないことがよくあります。勇気があれば、1.0 よりも高くすることもできます。

トレーニング スクリプトを実行すると、さまざまな温度でのサンプル出力が表示されることがわかります。これを使用して、実行するエポックの数と、最終出力の生成に使用する温度を決定できます。

ニューラルネットワークが思いつくすべてのアイデアがコメディの金になるわけではありません。最適なものを自分で選択する必要があります。私の AI が考え出したライフハッカーの優れた見出しをいくつか紹介します。

赤ちゃん用ノートパソコンを作る最良の方法

バックスペース飲酒ゲームで生き残る方法

就職面接を購入する最良の方法

この便利なグラフィックを使って人生最高の焚き火をする方法

自分だけのポッドキャストバーを作る方法

Arduino なら新しい iPhone X を入手する方法

美術館で自分の測定値をクリーンアップする方法

あなたのストーリーと不安を始める方法

冬に自分だけのインクを作る最良の方法

想像上の概念との関係を保つ方法

Raspberry Pi で完璧なワインを作る最良の方法

トイレットイチゴの最良の食べ方

休暇中により良い仕事に就く方法

頑固な瓶を食べる最良の方法

温度とトレーニング エポック数をいじってこれらを取得し、気に入ったものを見つけるたびにそれをお気に入りのテキスト ファイルにコピーしました。また、アルゴリズムの単語ごとのバージョンも実験しました。上記のスクリプトでは、デフォルトの文字ごとのモデルが使用されます。私の最終的な見出しリストには、両方の結果が含まれています。

不合格の一部について興味がある場合は、温度 0.1 で得られる結果を次に示します。

携帯電話の代替品を増やすのをやめてストリーミングを続けるための最良の方法

世界について知る必要がないときに最高の電力をストリーミングする最良の方法

誰でも始められるようにするための一般的な方法から始め続けるための最良の方法

最も人気のある投稿を見る最良の方法を取得する方法

携帯電話の製造を開始し続けるための最良の方法

そして、それを 1.5 まで上げると (危険なほどクリエイティブです):

日の名残: 非サブアルを広告で検出する方法

Qakeuage を旅行履歴、オーブンチャイム、または「Contreiting Passfled」に更新します

リスク・イデレカディではない2枚のコピー、ズーミタスに焦点を当てる

Ifo Went Vape Texts Battery Oro の信頼性 Supremee Buldsweoapotties

DIY グリルで私のハイス ユニットを編集してあなたの言葉を広めることができるようになりました

明らかに人間の助けが必要です。

AI の相棒になろう

ニューラルネットはデータセットから学習できますが、何が起こっているのかを本当に理解しているわけではありません。だからこそ、最良の結果の一部は人と機械のパートナーシップから生まれます。 「それが私が使っているツールであることは知っています」とジャネール・シェーンは言います。「しかし、それを『ちょっとしたニューラルネットワークを使えばできるよ』とか『ああ、それは賢かった』とか『あなたは混乱し始めています、かわいそうな人。

関係を最大限に活用するには、AI の相棒をガイドする必要があります。場合によっては、データセットのルールを推測するのが非常にうまくなり、入力したものと同じものを再作成するだけになる場合があります。これは、盗作の AI バージョンです。その面白い出力が本当にオリジナルであるかどうかを確認する必要があります。

ボットニク スタジオ予測テキスト キーボードをトレーニングすることで、人間と機械をペアリングします。友人の携帯電話を手に取り、キーボードの予測テキストを使用してメッセージを入力した場合を想像してください。最終的には自分自身のメッセージを、友達のようなスタイルで書くことになります。同様に、次のことができます。Botnik キーボードをトレーニングする任意のデータ ソースを使用して、キーボードから入力された単語を使用して書き込みます。そこですこの素晴らしいアドバイスコラムの決闘Savage Love と Dear Abby でトレーニングされた 2 つの Botnik キーボードから来ました。

アルゴリズム仲間と協力するのではなく、相手に対抗したい場合は、ジャネール シェーンが、最初は牧草地で草を食む羊の認識に優れているように見えたニューラル ネットワークにどのようにいたずらしたかを調べてください。彼女は羊をフォトショップで切り出し、AI が草の中の白い塊を探しているだけであることに気づきました。彼女が羊をオレンジ色にすると、AI はそれを花だと思いました。それで彼女は彼女のツイッターフォロワーに尋ねた珍しい場所にいる羊のために、見つかったAI は、車に乗っている羊は犬に違いない、木の上のヤギは鳥に違いない、キッチンにいる羊は猫に違いないと考えるということです。

このツイートは現在利用できません。読み込み中か削除された可能性があります。

本格的な AI も同様の問題を抱えている可能性があり、楽しみのためにアルゴリズムをいじってみると、AI がなぜエラーを起こしやすいのかを理解するのに役立ちます。たとえば、ある初期の皮膚がん検出 AI は、がん性の皮膚病変と良性の皮膚病変を区別するための間違ったルールを誤って学習してしまいました。医師は大きな病変を見つけると、大きさを示すために定規の横で病変の写真を撮ることがよくあります。 AI誤って自分自身を教えてしまった癌性腫瘍を見つけるのは簡単です。定規を探すだけです。

私たちが学べるもう 1 つの教訓は、アルゴリズムの出力の品質は、入力したデータと同じであるということです。プロパブリカは次のことを発見しました。量刑に使用されたアルゴリズムの1つは、白人被告よりも黒人被告に対して厳しかった。同研究所は人種を要素として考慮していなかったが、その意見により、黒人被告に共通する犯罪と背景の方が、白人被告に関連する犯罪と背景よりも再犯の強力な予測因子であると誤って信じるようになった。このコンピューターには人種という概念がありませんでしたが、入力データにバイアスが反映されている場合、コンピューターはそのバイアスを永続させることになる可能性があります。アルゴリズムのこの限界を理解し、アルゴリズムは人間ではないから公平でなければならないと考えないことが最善です。 (ヘイトスピーチ AI よ、頑張れ!)

データセットを混ぜる

1 つのデータセットにとどまる必要はありません。それら 2 つを組み合わせて、結果を確認してください。 (私商品リストを組み合わせたたとえば、Goop ストアや Infowars ストアから。少し NSFW です。)

分類アルゴリズムをトレーニングすることもできます。シェーンは、メタルバンドのリストとマイリトルポニーの名前のリストをすでに持っていたと言いました。違いを見分けるための分類器を訓練した。 (ピンキー ドゥーム: 99 パーセントは金属です。) 分類器をトレーニングしたら、それに何でも入力して読み取り値を取得できます。ベネディクト・カンバーバッチ:96パーセントが金属。

このツイートは現在利用できません。読み込み中か削除された可能性があります。

トレーニングされた textgenrnn ネットワークに好きなものをフィードすることもできます。必要なアイテムの数とネットワークで使用する温度 (創造性) を指定するときに、プレフィックスを付けることもできます。次に、その接頭辞に続く単語を考え出します。ライフハッカーの見出しをトレーニングした後、AI に「3 つの材料のハッピーアワー」で始まる見出しを教えてくれるように頼みました。それはいくつかの素晴らしい架空のカクテルで応えました(繰り返しますが、これらは長いリストから私が選んだものです)。

3 つの材料を使ったハッピーアワー: ハーブによるストレスフルなアップグレード

3 材料のハッピーアワー: ケーキのストローブレイク

3 材料のハッピーアワー: ダークレッド ポット

3 つの材料を使ったハッピーアワー: トレーダーの翼のためのピザと飲み物

3 つの材料を使ったハッピーアワー: フェレント ポット

3成分ハッピーアワー:のどをすっきり

3 つの材料を使ったハッピーアワー: 最高のバーオーダー

3 つの材料を使ったハッピーアワー: 残り物のパーティー コントロチ

3 つの材料を使ったハッピーアワー: 夏のラム酒のカッティング

3 材料のハッピーアワー: 最高のココナティ

3 つの材料を使ったハッピーアワー: 美しいシクライン

3 つの材料を使ったハッピーアワー: チーズキャンディー

今後の Lifehacker の投稿でこれらの記事を目にしたとしても驚かないでください。私たちの食品と飲料の編集者であるクレア・ロワーは、これらのいくつかを作ってみたいと言いました。

しかし、私は彼女の専門家によるレシピを待つ代わりに、これらニューラルネットワークにも。のカクテルレシピを集めてみました。クリス・ロウダーのカクテルガイドそしてウィキブックのカクテル用語集、各カクテルがテキスト ファイルの 1 行を占め、カクテルのタイトルが最初の数語になるように配置しました。つまり、カクテル名を選択し、カクテルで訓練されたニューラルネットに、その後のレシピを提供するよう依頼できるということです。結果の一部を次に示します。

最高のココナティ - オンスベネディクト会 e. 1 ダッシュ 芳香 b.

チーキーキャンディ i. 1オンスブレンディ・シェリー b. 1.5オンス新鮮なパイナップル d.ロンスタイン ブランデー ボウル デ アット ラージ ジャマイカ c. 2 ダッシュ パイナップル d. 1 ダッシュ アロマティック ビターズ e. 1 ダッシュ アロマティック ジン ii. 1オンスウォッカ ii. .5オンス熟成したラム酒 c.アンゴスチュラ ビターズ 2 ダッシュ i.かき混ぜる/濾す/ニック&ノラグラス/氷/1

ザ フェレント ポット - - 1.25 オンスグリーンシャルトルーズ 1.5オンスロンドン ドライ ジン b. 0.75オンスb. ウィスキーを充填します。オレンジハーフウイスキー

もちろん、何でも尋ねることができます。

ベス・スクワレッキ - 1オンスブレンドスコッチ(ジュース)水 b. 1オンス卵白を大きなロックグラスに入れ、1934年にデッツを入れるか、バッビーノを作ります

ライフハッカー c. 14 ウォッカ マティーニ i. 0.75オンスカンパリ i.シェイク/ファインストレイン/クーペ/レモンツイスト

入力データは数百のカクテルレシピだけだったので、温度を変える必要がありました方法何か面白いものを手に入れるために。また、温度が高い場合 (この場合は 1.0)、実際には単語ではない単語が得られることがあります。ロンスティン ブランデーやブレンディ シェリーを店で見つけられると幸いです。もし見つけたら、私のペットの AI はとても喜ぶでしょう。