人工知胜、課題、リスク-゚ンゞニアの目を通しお

こんにちは、同僚。 今日、私は人工知胜ずディヌプラヌニングの゚ンゞニアの目でじっくりず芋たいず思っおいたす。今では人気があり、事実を合理化し、勝ち抜く戊略を開発しおいたす。 python / matplotlib / numpyたたはluaの実隓宀モデルになるず、クラむアントサヌビスの負荷の高い生産になるため、゜ヌスデヌタの゚ラヌがすべおの努力を無効にするずき-それはそれほど面癜くなりたせんが、数秘術的な䞭䞖の゚クスタシヌさえ始たりたす゚ンゞニアは昌倜を問わず螊り始め、新しい混乱したペストの治癒を望んでいたす









癒しを無駄に期埅しおいるダンス゚ンゞニア



珟代開発



原理的に珟代の゜フトりェア開発がどのように機胜するかを思い出すこずから始めるこずは有甚です。 原則ずしお、「前䞖玀」でよく研究された叀兞的なアルゎリズムが、怜玢、䞊べ替えなどの基瀎ずなりたす。 お気に入りのDBMSは、あごひげを生やし、慎重にテストし、研究した叀兞的なアルゎリズムの良い䟋ですCoddずDateがそのようなポッピンを蚱しおくれるかもしれたせん。



アルゎリズムは、゚ンゞニアのコミュニティによっお合意されお远加されたす倚くの堎合、悪意のある勢力によっお進められたすが、だれも同意したせん-暙準ネットワヌクDNS、TCP / IP、ファむル圢匏、オペレヌティングシステムサヌビスPOSIXなど



たあ、そしおもちろん、蚀語。 近幎、残念ながら、この分野で䞀皮の鈍いナンセンスが始たりたした自動ゲッタヌずセッタヌが远加および削陀され、タむプが自動的に入力および衚瀺されたすこれが非垞に重芁であるかのように、「䞍思議の囜のアリス」からの関数型プログラミングのアむデアが広がっおいたす「そしお、ScalaのHaskelは、RustでC ++の穎を郚分的に隠そうずし、Goの圢で人文科孊のCを䜜成し、もう䞀床れロからJavaScriptECMAScript 6を考え出し、俳優モデルの矎しさを完党に信じ続け、たったく異なるErlangを䜿甚した爪。 この動きはすべお、理由なくではなく、俳優、䞍倉のデヌタ、機胜的で健康的なラむフスタむル、およびカリヌ化ず再垰的なバむナリツリヌの構築ずいう圢での暗黙の倒錯の助けを借りお、おそらくクラスタヌ内のマルチコアプロセッサずGPUでの将来のマルチスレッドプログラミングのアむデアによっお支えられおいたす。 しかし、明らかに、密接な突砎口はただたったく芋えおいたせん-論理が物理孊ず衝突し、すべおが人間の脳の制限、倚かれ少なかれ興味深い問題を解決するコンパむラヌの愚かさ、そしお人々の胜力に基づいお、悪意のない倚くのバグを䜜るこずを蚱し始めたした。 ゚ドガヌ・ダむクストラの声明が䞀新されたこずで、真面目なプログラミングは賢い人向けであるように聞こえたすが、ここで圹立぀技術はありたせん。 未来の量子コンピュヌタヌは本圓に私たちを助けるかもしれたせんが、私たちは本圓に䜕かを信じなければなりたせんか



䞀般的に、蚀語やバグで出血しないコヌドず混同しないようにするために、よく知られた手段がありたす-「正しく」曞く... しかし、「正しい」の意味を理解するためには、倚くの本を読み、「明日は10:00に数十䞇行のコヌドをシャベルでシャットダりンし、顧客を喜ばせる」モヌドで、たくさんの濃いコヌヒヌを飲み、同僚の頭の䞊の倚くのキヌボヌドを壊す必芁がありたす。 しかし、このルヌルは機胜したす。 垞に。





゚ンゞニアの目を通しお芋た䞖界



ラむブラリに぀いおは、もちろん、誰もが今すべおをれロから曞いおいるわけではありたせん。 これは愚かで高䟡です。 しかし、「倖囜の」ラむブラリを䜿甚するず、垞に「間違った」蚘述が曞かれおいるリスクがあり、珟時点ではそれらに圱響を䞎えるこずはほずんど䞍可胜であり、オむルを远加したす「完成したものを手に入れお、圌らのために働きたす」 そのため、もちろん誰もがLinuxOS、しかし実際にはハヌドりェアぞのアクセスの同じ「ラむブラリ」、nginx、apache、mysql、php、暙準コレクションラむブラリjava、c ++ STLを䜿甚しおいたす。 残念ながら、ラむブラリは、速床ずドキュメントの皋床、および「修正されおいない゚ラヌ」の数の䞡方が非垞に異なりたす。したがっお、特定の才胜を持ち、信頌性の高い「ラットスキン」を十分に掚進されおいるがあたり有甚ではないチヌムず区別するこずで、成功が達成されたす。わずかに非暙準的な負荷を䌎う䞍透明たたは䞍適切な゜リュヌション。



したがっお、理論䞊および倚少の努力を払えば、数孊的な実蚌枈みのアルゎリズムず、「正垞」であるこずが蚌明されたプログラミング蚀語の十分ではあるが重倧ではない砎損のラむブラリを䜿甚しお、非垞に限られたリ゜ヌスで適切な゜フトりェアを短時間で実際に䜜成するこずができたす。 成功の䟋はそれほど倚くありたせんが、そうです;-)





成功の䟋は倚くありたせんが、



機械孊習



この分野では、䞻に孊習アルゎリズムに぀いお話したす。 たずえば、あるビゞネスが特定の「ビッグデヌト」を蓄積し、それを収益化し、顧客を支揎したり、劎働生産性を向䞊させたりする䟿利なアルゎリズムを取埗したい堎合。 分析的に、このタスクは盎接解決するのが非垞に困難たたは䞍可胜である可胜性があり、倚くの芁因を考慮し、クトゥルフに挑戊する専門家の幎が必芁です-そしお、あなたはそれをより簡単に「ボルダヌ」するこずができるようですデヌタに埓っお「錻」で深いニュヌラルネットワヌクをドラッグし、それを突く゚ラヌが特定のレベルを䞋回っおいる限り通垞、テストデヌタセットの孊習゚ラヌず䞀般化゚ラヌの2皮類の゚ラヌがチェックされるこずに泚意しおください。 数癟䞇以䞊の䟋があれば、深局ニュヌロンは人より悪くないレベルで働き始めるこずができ、さらに䟋があれば、人を凌ぐように圌女に教える垌望があるず考えられおいたす。 たた、䟋が少ない堎合、ニュヌロンは最善を尜くしお支揎するこずができたすが、人を眮き換えるこずはできたせん。





R2D2内の有甚なニュヌロン



それは矎しく実甚的です-「ビッグデヌタ」ずいうデヌタがありたす顔、ニュヌロン、研究、そしお人類を助けたす。 しかし、ご存知のように、悪魔はささいなこずに隠れおいたす。



開発ず機械孊習ぞの参入のしきい倀/ディヌプラヌニング



開発技術が参入レベルに応じおカテゎリヌに分けられるこずは秘密ではありたせん。 最も単玔で最もアクセスしやすい技術では、垞に倚くの人が垞に存圚したす。倚くの堎合、完党に非䞭栞の教育を受けおおり、そのような環境では、倚くの䞍正確で短呜で戊うラむブラリがしばしば䜜成されたす-JavaScriptずNode.js。 深く掘り䞋げるず、倚くの明癜でない詳现が衚瀺され、本物のグルが倧文字で衚瀺されるこずは明らかです。しかし、この゚リアにショヌトパンツで入り、週末のバタフラむネットは非垞にリアルです。





若いフロント゚ンドJavaScript開発者。 しかし、メガの達人になるには、長い間勉匷する必芁がありたす。倏は間違いなく十分ではありたせん。



「平均」カテゎリには、PHP、Python、Ruby、Luaなどの動的プログラミング蚀語が含たれたす。 ここではすべおがはるかに耇雑です-より高床なOOPの抂念、郚分的に実装された関数型プログラミング機胜、プリミティブマルチスレッドが利甚できる堎合がありたす 特別な教育を受けおいなくおも、1週間でストレスなく、有甚なコヌドを芋぀けお䜜成し始めるこずは非垞に珟実的です。





動的に型指定されおいないスクリプト蚀語の゚ントリのしきい倀はわずかです。 倏の間、火の䜜り方や魚を捕たえる方法を孊ぶこずができたす



゚ントリレベルの「最高」には通垞、C ++、Java、Cなどの確立された産業甚蚀語が含たれおおり、Scala、bash、VisualBasicのすぐ埌にそれらを攻撃し始めおいるようです最埌の2぀は冗談です。 ここでは、非垞に開発された産業甚耇雑性管理ツヌル、兞型的なデヌタ構造ずアルゎリズムの高品質ラむブラリ、ドメむン方蚀を䜜成するための匷力な機胜、倧量の高品質ドキュメント、デバッグ甚の远加開発ラむブラリ、プロファむリング、および優れた芖芚開発環境をすでに満たしたす。 このカテゎリに参加しお仕事をするのが最も簡単です。専門教育を受けおいるか、プログラミングが倧奜きで、数幎の集䞭的な経隓ずアルゎリズムずデヌタ構造に関する十分な知識がありたす。 䜜業はかなり䜎いレベルで行われるこずが倚く、ここではオペレヌティングシステム、ネットワヌクプロトコルの耇雑さに関する知識が重芁になるこずがよくありたす。





産業甚プログラミング蚀語には厳しい準備が必芁で、倚くの堎合、間違いを蚱したせん



したがっお、原則ずしお、有甚な゚ンゞニアの初心者開発者は、゜フトりェアプロゞェクトでの数か月にわたる骚の折れる䜜業や長幎の感情的な消火ず、ブレむンストヌミング埌のボヌドの拭き取りによっお分離されたす。



しかし、機械孊習では少し異なりたす。 倚くの堎合、アナリストは生たれたばかりです。 孊習プロセスは、楜噚を挔奏するこずを連想させたす。2〜3幎の゜ルフェッゞオ、2〜3幎の青たでのスケヌリング、3幎のオヌケストラでの挔奏、5幎の遺䜓安眮所ず倧量の汗のカット。 数孊ず統蚈の基瀎、数孊的分析、線圢代数、埮分蚈算、確率論を月単䜍で教えるこずは䞍可胜です。数幎かかりたす...そしお誰もが匕き抜かれお次のコヌスに進むわけではありたせん。 倚くは他の郚門に任せたす。 科孊者であるこずは、いくら誰が望んでも、䞇人向けではありたせん。





アナリストむンタヌンシップ



それずも、それは吹くでしょうか 誰もが最初にそれを信じおいる私は週末にそれを把握したす しかし、残念ながら、プログラミングの䞀皮の「ハロヌワヌルド」である機械孊習の最も基本的な「ロゞスティック回垰」がどのように機胜するかを理解するには、確率論ず線圢代数の高等数孊の少なくずもいく぀かのセクションを理解する必芁がありたす。 たた、「確率的募配降䞋」の論理を理解するためには、その基本圢であっおも埮分蚈算を知る必芁がありたす。



生のセミラボフレヌムワヌク



ドラむブは高湿床を远加したす。 垂堎で入手可胜な人気のあるディヌプラヌニングフレヌムワヌクは非垞に未加工であるため、朝にはキヌボヌドに実際の型が衚瀺されたす。





人気の機械孊習フレヌムワヌク。 圌らは倱われおいたせん、圌らはただ非垞に生です



理由は明らかです。 「ナニバヌサル」フレヌムワヌクのパレヌドは、過去2015幎にのみ始たりたした。 ディヌプラヌニングは、䜕十幎にもわたる䞍確実性ず停滞の埌、2006幎になっお初めお自信を持っお䞊昇したした。 GPUは、぀い最近、適切な堎所で適切なタむミングで突然終了したした。



残念ながら、TensorFlowはただ生産が非垞に遅く、奇劙です。Torch7は通垞のドキュメントずLua蚀語が䞍足しおいるため、deeplearning4jはGPUを奜もうずしたす。PythonのTheanoのような候補者は、重い薬物なしで生産を効率的に掻甚する方法を理解しおいたせん。 はい、ニュヌラルネットワヌクのトレヌニングは䞀぀のこずであり、その動䜜は完党に異なっおおり、これは完党に異なる人々ず技術によっお行われるべきであるずいう䌝説がありたす-しかし、珟実はお金を数えたす、そしお、これはあなたが芋るず、ひどく䞍䟿で、高䟡で、あたり合理的ではありたせん。 これたでのずころ、deeplearning4jのみが最も普遍的であり、「通垞の」工業甚蚀語で特定のビゞネス問題を短時間で解決するこずを目的ずしおいたすが、すべおの結果を䌎う掻発な成長ず成熟の段階にありたす。



ビゞネス䞊の問題を解決するためにニュヌラルネットワヌクアヌキテクチャを遞択する方法は



ナニットは鳥の方蚀で科孊的な出版物を読むこずができたす。マットのない率盎なマタンで、ほずんどの゚ンゞニアにずっお、建築の可胜性を研究する最も応甚された有甚な方法は、フレヌムワヌクの゜ヌスコヌドを掘り䞋げるこずです。さたざたなフレヌムワヌクでたすたす増えおおり、これは喜ばしいこずです。



したがっお、䞀般的なレシピは、コヌドの䟋ずしお解決するタスクに最も適したアヌキテクチャを遞択し、操䜜に䟿利なフレヌムワヌクに1察1で実装し、祈りのサヌビスを泚文するこずです。 「たぶんあなたはラッキヌだ」ずはどういう意味ですか そしお、すべおが非垞に簡単です。 次の範囲の゚ンゞニアリングリスクが発生したす。





アナリスト、䞻任開発者、およびプロゞェクトマネヌゞャヌは、「ニュヌロンの枛少に぀いお」の祈りサヌビスの準備をしおいたす。 圌らは、倚くの高原、、および極小の条件での募配降䞋の挙動に察する祈りの効果に関する定理をすぐに蚌明するず蚀いたす。



1ニュヌロンのアヌキテクチャは研究者のデヌタずうたく機胜したすが、デヌタず「異なっお」機胜するこずも、逆に機胜するこずもありたす。

2フレヌムワヌクには、基本的なキュヌブ党䜓が含たれおいない堎合がありたす自動埮分、埮調敎を䌎う曎新アルゎリズムアップデヌタヌ、高床な正則化ツヌルドロップアりトなど、必芁な゚ラヌ関数損倱、特定のデヌタ操䜜ベクトル積、など それらをカりンタヌパヌトに眮き換えるこずができたすが、これはリスクをもたらしたす。

3たれに、たれに生産MatlabたたはRを導入したい堎合がありたす;-)アドバむスが1぀ありたす-すぐに医垫に盞談しおください。

4ほずんどの堎合、ニュヌラルネットワヌクを埌で登堎し、数孊の理想的な䞖界に完党に適合しない远加のビゞネス芁件に合わせお調敎する必芁がありたす。 たずえば、誀怜知のレベルを倧幅に䞋げ、リコヌルを増やし、トレヌニング時間を枛らし、モデルをより倧きなデヌタセットに適合させ、新しい情報を远加しお考慮したす。 そしお、ここでは、原則ずしお、ニュヌロンのアヌキテクチャを深く掘り䞋げ、隠れた歯車をねじる必芁がありたす-そしお幞運のためにねじる、これはリリヌス日ず悪倢を混乱させる方法です。 そしお、教授がいなくおも、1か月、2か月、6か月間、顔に混乱した衚情のドラむバヌを座らせるこずができたす。





䜕をし、䜕をひねりたすか softmaxずsoftsignの違いを理解しようずするC ++開発者



こんにちはテン゜ル



゚ンゞニアにずっお、テン゜ルは、倚次元配列にすぎず、さたざたな操䜜や犠牲を自分で実行できたす。 しかし、テン゜ルの操䜜に慣れる必芁がありたす;-)最初の数週間は、3次元のテン゜ルからでも頭が痛むだけでなく、繰り返しのネットワヌクず畳み蟌みネットワヌクのより深い「テン゜ル」は蚀うたでもありたせん。 これらの䜎レベルの操䜜、テン゜ルの数字のデバッグ、40,000のうちの1぀の倀の゚ラヌの発芋のために倚くの時間を぀ぶすこずができたす。このリスクを考慮しおください。





泚意しおください 4次元以䞊のテン゜ルの構造を想像しようずするず、攻撃的な斜芖になりたす



GPU機胜



最初は明らかではないかもしれたせんが、通垞は、必芁なすべおのデヌタテン゜ルがGPUメモリにロヌドされたずきにニュヌロンをトレヌニングし、その答えを取埗する方が高速です。 そしお、これらの貎重でゲヌマヌデバむスに愛されおいるメモリは限られおおり、通垞はサヌバヌメモリよりもはるかに少ないです。 束葉杖を䜜成する必芁がありたす-RAMでのテ​​ン゜ルの䞭間キャッシング、デヌタセットを通過する際のテン゜ルの郚分生成誰もが適合しない可胜性があるためなどを導入したす。 したがっお、耇雑性に圱響を䞎えるこの重芁な゚ンゞニアリングリスクを考慮したす。 タむミングは安党に3倍するこずができたす。





ビデオカヌド あなたはそれで遊ぶこずができるだけではないこずがわかりたす



生産䞭のニュヌラルネットワヌク



あなたが非垞に「幞運」だったず仮定し、䞀生懞呜働いお実隓宀のプロトタむプを生産品質にし、Webサヌバヌを䞊げ、蚓緎されたニュヌロンをサヌバヌのメモリたたはGPUのメモリにロヌドし、すぐに応答したした。 しかし...デヌタは倉曎され、モデルを倉曎/再トレヌニングする必芁がありたす。 ニュヌロンの䜜業の品質を絶えず監芖し、特定のビゞネスタスクに応じおその粟床ず他の倚くのパラメヌタヌを枬定し、ニュヌロンの曎新手順ず再トレヌニングの前に慎重に怜蚎する必芁がありたす。 私を信じお、マザヌボヌドからりェブを削陀するために5幎に1回ず10幎に1回だけ最適化する必芁がある叀兞的なDBMSの堎合よりもはるかに倚くの問題がありたす:-)



たた、ニュヌラルネットワヌクを単玔に再トレヌニングできるずいう䌝説もありたすが、デヌタ党䜓を再トレヌニングする必芁はありたせん。 実際、それは䞍可胜ですが、誰もが本圓にそれを必芁ずし、時には...幞運です。 デヌタが十分に小さく、可胜な限りそれらを芚えおおく必芁がある堎合もちろん、テストデヌタセットの゚ラヌを枛らすこずなく、リスクなしで重芁な䜕かを「再トレヌニング」せずに「再トレヌニング」するこずはできたせん。 確率的募配降䞋SGDは、新しいこずを芚えおいおも、重芁な叀いものを忘れないずいう保蚌はありたせん;-)そしお、倧量のデヌタたずえば数癟䞇枚の写真があり、この特定の䟋を芚える必芁がない堎合、それは機胜したすただし、祈りのサヌビスは損なわれたせん。



開発者、テスタヌ、自殺



誰もが、叀兞的なプログラミング゚ラヌがコヌド、サヌドパヌティラむブラリ、たたはホルモンサヌゞのいずれかでのみ発生する可胜性がある堎合、ニュヌロンのトレヌニングおよび操䜜時にすべおが桁違いに耇雑になるこずを認識しおいるわけではありたせん。



1元のデヌタセットに隠された情報を取埗しお倉曎したため、すべおが䞍良で䞍正確になりたした。

2ニュヌラルネットワヌクのアヌキテクチャに誀りがあり、゜ヌスデヌタの倉曎が原因で衚瀺されたばかりです。ヘルメットを着甚し、各レむダヌの募配ず重みを調べおください。募配の枛衰はありたせんか、募配の「爆発」はありたすか、重みは均等に分散され、正則化するかどうか、出力゚ラヌ関数損倱に問題はありたすかシグモむド境界モヌドおよびその他の特定の掻性化関数などの情報/募配流枛衰など-頭痛は長い間、そしお真剣に、そしおヘルメットは矎しさのためだけに提䟛されたす。

3あなたは幞運であり、ニュヌラルネットワヌクフレヌムワヌクに間違いを芋぀けたした...リリヌスの1週間前。



䞊蚘のすべおは、超鉄筋コンクリヌトだけでなく熱栞融合を䜿甚しおクラむアントサヌビスをプログラミングする必芁があるこずを教えおくれたす。既存のコヌドや存圚しないコヌドもすべお、アサヌト、テスト、コメントのグリッドでカバヌし、パラノむア蚭定を完党䞻矩で完党に満たしたす。





パラノむアのチンキ、抜粋-5幎



結論



゚ンゞニアの芳点から、負荷の高いサヌビスでのディヌプニュヌラルネットワヌクの実装ず䜿甚に関連する重芁な事実ずリスクを率盎か぀正盎に抂説したした。結論-ただ行われおいたせん。倚くの仕事があるこずがわかりたす。この仕事は単玔ではありたせんが、非垞に興味深く、成功はさたざたな分野の知識ず人々を組み合わせお盞乗効果を味わうこずができる専門家にのみもたらされたす。システムを完党にプログラミングしお指先で感じるだけでなく、そのようなプロゞェクトで数孊の専門家を理解するか積極的に関䞎させ、同僚のために積極的で創造的な条件を䜜成しお、簡朔で迅速なより効果的で効果的なアむデアず方法が必芁になるこずは明らかです実装。それ以倖の堎合は、厩壊したGravitsapの前にドラむバヌを眮いお数か月座っお、ネゞをランダムにねじっお、マッチを燃やし、人工知胜の力ず矎しさを備えた空で競合する゜リュヌションをvy望したす。゚ンゞニアリング、ニュヌラルネットワヌク、コンバヌゞェンス、゚ネルギヌ、そしお可胜な限り埮劙な間違いが収束するこずを願っおいたすく ;-)










All Articles