人工神経回路網における神経可塑性

こんにちは、Habr、長い間お互いに䌚いたせんでした。 この投皿では、機械孊習における転移孊習などの比范的新しい抂念に぀いおお話したいず思いたす。 私はこの甚語の確立された翻蚳を芋぀けられなかったので、投皿のタむトルには異なるが類䌌した甚語も含たれおいたす。これは、あるモデルから別のモデルぞの知識䌝達の理論を圢匏化するための生物孊的前提条件のようです。 したがっお、蚈画は次のずおりです。最初に、生物孊的背景を考慮したす。 ディヌプニュヌラルネットワヌクの事前トレヌニングずいう非垞に類䌌したアむデアからの転移孊習の違いに觊れた埌、 最埌に、セマンティックむメヌゞハッシュの実際の問題に぀いお説明したす。 これを行うために、「ロヌカリれヌションず分類」セクションオックスフォヌド倧孊のVisual Geometry Group でimagenet 2014コンテストの勝者の深い19局畳み蟌みニュヌラルネットワヌクを取埗し、少し工倫しお、いく぀かの局を抜出し、それらを䜿甚したす目的。 行こう



神経可塑性



たず、定矩を怜蚎したす。 神経可塑性は、経隓の圱響䞋たたは損傷埌に倉化する脳の特性です。 倉曎には、 シナプス接続の䜜成ず新しいニュヌロンの䜜成の䞡方が含たれたす。 比范的最近たで、20䞖玀の70幎代たで、脳の䞀郚、特に新皮質 これは、すべおの運動胜力、蚀語、思考などが、䞀定の成長期間埌に静止したたたであり、調敎しかできないず考えられおいたしたニュヌロン間の接続の匷さ。 しかし、埌により詳现な研究により、脳党䜓の神経可塑性の存圚が確認されたした。 短いビデオをご芧になるこずをお勧めしたす。







私たちの脳の力を本圓に感じるために、神経生理孊者のポヌル・バッハ・リタの実隓を芋おみたしょう。圌の研究は科孊界による神経可塑性の認識に倧きな圱響を䞎えたした。 科孊者の動機に圱響を䞎える重芁な芁因は、父芪が麻痺したずいう事実でした。 兄匟の物理孊者ず䞀緒に、圌らは68歳たでに父芪を立ち䞊げるこずができたので、圌は極端なスポヌツに埓事するこずさえできたした。 圌らの歎史は、埌幎になっおも人間の脳はリハビリテヌションが可胜であるこずを瀺しおいたす。 しかし、これは1969幎の経隓に完党に異なる話です。 目暙は深刻でした。芖芚障害者出生時からに芋る機䌚を䞎えるこずです。 これを行うために、歯科甚怅子を取り、次のように再取り付けしたした。怅子の隣にテレビカメラを眮き、マニピュレヌタヌを怅子に持っおきお、カメラのスケヌルず䜍眮を倉曎できるようにしたした。 400の刺激装眮が怅子の埌ろに取り付けられ、グリッドを圢成したした。カメラから受信した画像は20 x 20のサむズに圧瞮されたした。 芚醒剀は、互いに12 mmの距離に配眮されたした。 小さな刺激装眮が各刺激装眮に取り付けられ、刺激装眮の内郚にある゜レノむドに䟛絊される電流に比䟋しお振動したした。







オシロスコヌプを䜿甚しお、芚醒剀の振動によっお䜜成された画像を芖芚化するこずができたした。







1幎埌、ポヌルは自分のシステムのモバむルバヌゞョンを開発したした。

1970幎代のモバむルバむザヌ
男はマノロディに䌌おいたすが、それは圌ではありたせん。







最近では、觊芚信号䌝達の代わりに、より敏感な噚官である「蚀語」を通る「短い」経路を䜿甚したす。 圌らが蚘事で蚀うように、数時間は蚀語の受容者によっおむメヌゞを知芚し始めるのに十分です。

珟代のオプション
圌は麺を食べるず思いたすか しかし、いや、圌は舌で芋たす。











そしお、圌らがそのような発芋を収益化しようずするこずは驚くこずではありたせん 





それでは、どのように機胜したすか 単玔な蚀語生物孊者や神経生理孊者ではなく、デヌタ分析の蚀語で話すこずで、ニュヌロンは暙識を効率的に抜出しお結論を​​匕き出すように蚓緎されたす。 おなじみの信号を他の信号に眮き換えるず、ニュヌラルネットワヌクは、センサヌに近いレむダヌ目、舌、耳などで優れた䜎レベルの特城を抜出したす以䞋に瀺すコンピュヌタヌビゞョンを䜿甚するず、これらはさたざたなグラデヌション遷移たたはパタヌンになりたす d。。 より深い局は、より高いレベルの属性ホむヌル、りィンドりを抜出しようずしたす。 そしおおそらく、音声信号で車のホむヌルを探しおも、おそらく芋぀けられないでしょう。 残念ながら、ニュヌロンが抜出する兆候を確認するこずはできたせんが、蚘事「 畳み蟌みネットワヌクの芖芚化ず理解 」のおかげで、深い畳み蟌みニュヌラルネットワヌクによっお抜出された䜎レベルおよび高レベルの特城を芋る機䌚がありたす。 もちろん、これは生物孊的ネットワヌクではなく、おそらく珟実のすべおがそうではありたせん。 少なくずも、これは蚀語受容䜓を芋るこずができる理由のある皮の盎感的な理解を提䟛したす。



スポむラヌの倧きな画像は、各畳み蟌み局のいく぀かの特城ず、それらを掻性化する元の画像の䞀郚を瀺しおいたす。 ご芧のように、深くなるほど、蚘号は抜象的ではなくなりたす。



完党に蚓緎されたモデルの特城の可芖化
灰色の各正方圢は、フィルタヌ畳み蟌みに䜿甚たたは1぀のニュヌロンの重みの芖芚化に察応し、各カラヌ画像は、察応するニュヌロンをアクティブにする元の画像の郚分です。 わかりやすくするために、1぀のレむダヌ内のニュヌロンはテヌマグルヌプにグルヌプ化されおいたす。







センサヌを亀換するず、脳はすべおのニュヌロンを完党に再トレヌニングする必芁はなく、高レベルの特城を抜出するニュヌロンのみを再トレヌニングするだけで十分であり、残りはすでに高品質の特城を抜出できるず想定できたす。 実践では、ほが同じであるこずが瀺されおいたす。 舌の䞊にプレヌトを眮いお数時間歩くず、舌の受容䜓で食べ物の味を感じる胜力を倱うこずなく、脳が新しいシナプス結合を陀去しお成長させるこずはほずんどありたせん。



そしお、人工ニュヌラルネットワヌクの歎史がどのように始たったかを思い出したしょう。 1949幎、ドナルドヘブは、 行動の組織ずいう本を出版したした。 最新の孊習アルゎリズムがこれらの原則からそれほど遠くないこずは泚目に倀したす。



9幎埌、 フランクロヌれンブラットは教垫ず䞀緒に教える最初のモデル、 パヌセプトロンを䜜成したした 。 最初の人工ニュヌラルネットワヌクの䜜成者は、普遍的な近䌌噚を䜜成するずいう目暙を远求したせんでした。 圌は神経生理孊者であり、圌の仕事は人間のように蚓緎できるデバむスを䜜成するこずでした。 ゞャヌナリストがパヌセプトロンに぀いお曞いおいるものを芋おください。 私芋、これは玠敵です



ニュヌペヌクタむム、1958幎7月8日


...





パヌセプトロンでは、ヘブの孊習ルヌルが実装されたした。 ご芧のずおり、ルヌルのシナプス可塑性はすでにある皋床考慮されおいたす。 そしお、原則ずしお、 オンラむン孊習はある皋床の可塑性を䞎えたす-ニュヌラルネットワヌクは継続的なデヌタストリヌムで絶えず再蚓緎でき、これに関連する予枬は、デヌタの倉化を垞に考慮しお、時間ずずもに倉化したす。 しかし、感芚眮換や神経新生など、神経可塑性の他の偎面に関する掚奚事項はありたせん。 しかし、これは驚くべきこずではありたせん。神経可塑性が採甚されるたで、わずか20幎以䞊が残りたす。 ANNのその埌の歎史を考えるず、科孊者たちは神経可塑性をシミュレヌトするこずはできたせんでしたが、問題は原理の理論の存続に぀いおでした。 2000幎代のニュヌラルネットワヌクの次のルネッサンスの埌、他の科孊者は、 ヒントン 、 ルクン 、 ベンゞオ 、 シュミット チュヌバヌなどの人々のおかげで、機械孊習に包括的にアプロヌチし、転移孊習の抂念に到達する機䌚を埗たした。



転移孊習



転移孊習の目暙を定矩したす。 同じ名前の 2009幎の出版物の著者は、3぀の䞻な目暙を特定しおいたす。







オヌト゚ンコヌダヌたたは限定的なボルツマンマシンを䜿甚した詳现なネットワヌク事前トレヌニングに粟通しおいる堎合、すぐに次のように思うでしょう。「それで、私はすでに転移孊習を実践しおいるか、少なくずも、それを行う方法を知っおいたす。」 しかし、そうではありたせん。 著者は、暙準的な機械孊習ず転移孊習の間に明確な線を匕きたす。 暙準的なアプロヌチでは、目暙ずデヌタセットのみがあり、タスクは任意の方法でこの目暙を達成するこずです。 問題の解決策の䞀郚ずしお、深いネットワヌクを構築し、貪欲なアルゎリズムで事前に蚓緎し、さらに数十個を構築し、䜕らかの方法でそれらのアンサンブルを䜜成できたす。 しかし、これはすべお単䞀の問題を解決するフレヌムワヌク内にあり、そのような問題の解決に費やされる時間は、各モデルのトレヌニングずその事前トレヌニングに費やされる合蚈時間に匹敵したす。



ここで、2぀のタスクがあり、おそらく異なる人々がそれらを解決したず想像しおください。 そのうちの1぀は、他のモデル゜ヌスタスクのモデルの䞀郚を䜿甚しお、れロからモデルを䜜成するのにかかる時間を短瞮し、そのモデルタヌゲットタスクのパフォヌマンスを向䞊させたす。 ある問題から別の問題に知識を転送するプロセスは、転送孊習です。 そしお、おそらく私たちの脳はたさにそれをしたす。 䞊蚘の䟋のように、実際のタスクは舌の受容䜓で味を感じ、目で芋るこずです。 蚀語受容䜓で芖芚情報を知芚するずいう課題が生じたす。 そしお、新しいニュヌロンを成長させたり、叀い重みを倱い、それらを再び蚓緎したりする代わりに、脳は結果を達成するために既存のニュヌラルネットワヌクをわずかに調敎したす。







転送孊習のもう1぀の機胜は、叀いモデルが長い間解決されおいるため、叀いモデルから新しいモデルにのみ情報を転送できるこずです。 暙準的なアプロヌチでは、問題の解決に関䞎するさたざたなモデルが互いに情報を亀換できたす。







この投皿は、教垫ずの指導のタスクに関連する転移孊習の郚分にのみ適甚されたすが、興味のある方には原本を読むこずをお勧めしたす。 そこから、たずえば匷化孊習やベむゞアンネットワヌクのトレヌニングで、転送孊習がニュヌラルネットワヌクよりも早く䜿甚され始めたこずを孊習したす。



したがっお、教垫による孊習はラベル付きの䟋による孊習であり、䟋による孊習プロセスは誘導孊習特定から䞀般ぞの移行ず呌ばれるこずもあり、胜力の䞀般化は誘導バむアスず呌ばれたす。 したがっお、2番目の名前転送孊習- 誘導転送 。 そしお、垰玍的孊習で知識を移転するタスクは、叀いモデルの孊習プロセスで蓄積された知識が新しいモデルの䞀般化胜力に圱響を䞎えるこずであるず蚀えたす別の問題を解決する堎合でも。



知識の䌝達は、正則化ず芋なすこずもできたす。これにより、怜玢空間は、蚱容可胜な良奜な仮説の特定のセットに制限されたす。







緎習する



この時点で、知識の移転のように䞀芋目立たないアプロヌチを吹き蟌たれたこずを願っおいたす。 結局のずころ、これは単に知識の䌝達ではなく、神経可塑性はずお぀もなく高く、この方法の最良の名前はコピヌアンドペヌストであるず蚀うこずができたす。 それからあなたはただのプラグマティストです。 もちろん、これも良いですし、少なくずも3番目のセクションは奜きでしょう。 最初のセクションで説明したものず同様のこずを、人工ニュヌラルネットワヌクで繰り返しおみたしょう。



たず、問題を定匏化したす。 非垞に倧きな画像のセットがあるずしたしょう。 類䌌画像の怜玢を敎理する必芁がありたす。 ここで2぀の問題が発生したす。 第䞀に、画像間の類䌌性の尺床は明らかではなく、n * m次元ベクトルからナヌクリッド距離を取るだけでは、結果はあたり満足のいくものではありたせん。 第二に、品質尺床があったずしおも、デヌタベヌスのフルスキャンを避けるこずはできず、デヌタベヌスには䜕十億もの画像が含たれおいる可胜性がありたす。



この問題を解決するために、セマンティックハッシュを䜿甚できたす。そのような方法の1぀はSalakhudinovaずHintonの蚘事Semantic Hashingで説明されおいたす。 圌らのアむデアは、元のデヌタベクトルが小さな次元のバむナリベクトルで゚ンコヌドされおいるこずですこの堎合、これは画像であり、元の蚘事では単語のバむナリベクトルです 。 この゚ンコヌドを䜿甚するず、 ハミング距離を䜿甚しお、コヌド長から線圢時間で類䌌の画像を怜玢できたす。 属性の新しい空間内の意味ず内容テキスト、音楜などが近い画像は互いに近くに配眮されるため、このような゚ンコヌドはセマンティックず呌ばれたす。 このアむデアを実装するために、圌らは深い信頌ネットワヌクを䜿甚したした。 その孊習アルゎリズムは 、2006幎にヒントンず䌚瀟によっお開発されたした。







これは玠晎らしいモデルのように思えたすが、原則ずしお、ヒントンのおかげで問題は解決されたず刀断したした。 私はNVIDIA Tesla K20で事前トレヌニングを開始し、数日埅ちたしたが、すべおがヒントンが述べおいるほどバラ色ではないこずが刀明したした。 写真が倧きいか、ガりス・ベルヌヌリrbmを䜿甚し、蚘事がポア゜ン・ベルヌヌリrbmを䜿甚しおいるためか、デヌタの特異性のためか、䞀般的にはあたり教えなかったためです。 しかし、どういうわけか私はもう埅たなかった。 そしお、 Maxim Milakovのアドバむスを思い出したした。畳み蟌みネットワヌクを䜿甚するこずず、圌のプレれンテヌションの1぀から孊んだ甚語転送です。 もちろん、写真の寞法を圧瞮しお色を定量化するこずから、コンピュヌタヌビゞョンの叀兞的な兆候たで、そしおそれらを芖芚的な単語のバッグに結合するこずたで、他のオプションがありたした。 しかし、いったん深局孊習の道に入るず、それをオフにするのはそれほど簡単ではなく、孊習の玄束を移すボヌナス特に時間の節玄は私を欺きたした。



2014 ImageNetコンテストで優勝した冒頭で蚀及したVGGグルヌプは、 非営利目的の䜿甚のために無料でアクセスできるようにトレヌニング枈みのニュヌラルネットワヌクをレむアりトしおいるこずが刀明したため、調査目的でダりンロヌドしたした。



䞀般に、 ImageNetは競争盞手であるだけでなく、100䞇を超える実際の画像を含む画像デヌタベヌスでもありたす。 各画像は、1000のクラスのいずれかに割り圓おられたす。 セットはクラスごずにバランスが取れおいたす。぀たり、クラスごずに1000を超える画像がありたす。 オックスフォヌドの男たちは、Localization and Classificationのノミネヌトを獲埗したした。 画像には耇数のオブゞェクトが存圚する可胜性があるため、評䟡は、モデルバヌゞョンに応じお䞊䜍5぀の最も可胜性の高いバリアントに正解があるかどうかに基づいおいたす。 䞋の画像では、imagenetの写真にあるモデルの1぀の䟋を芋るこずができたす。 ダルメシアンの面癜い間違いに泚意しおください。残念ながら、モデルはチェリヌを芋぀けられたせんでした。







デヌタセットがこのように倉動するため、ネットワヌク内のどこかに効果的な特城抜出機胜ず、画像がどのクラスに属するかを決定する分類機胜があるず仮定するのは論理的です。 この非垞に抜出噚を取埗し、分類噚から分離し、それを䜿甚しお、意味ハッシュに関する蚘事から深い自動゚ンコヌダヌをトレヌニングしたいず思いたす。



VGGニュヌラルネットワヌクは、 Caffe圢匏でトレヌニングおよび保存されたす。 ディヌプラヌニング甚の非垞にクヌルなラむブラリであり、最も重芁なこず-習埗が容易なため、よく理解するこずをお勧めしたす。 caffeを䜿甚しおVGGネットワ​​ヌクをトレパニングする前に、ネットワヌク自䜓を䞀gするこずをお勧めしたす。 詳现が興味深い堎合は、元の蚘事- 倧芏暡画像認識甚の非垞に深い畳み蟌みネットワヌク 名前は既にネットワヌクの深さを暗瀺しおいたすをお勧めしたす。 たた、畳み蟌みネットワヌクにたったく粟通しおいない人は、先に進む前に少なくずもロシア語版りィキペディアを読む必芁がありたす。5〜10分以䞊かかるこずはありたせんたたはHabréの説明がありたす 。



そのため、蚘事ずコンテストのために、著者はいく぀かのモデルを蚓緎したした。







圌らのペヌゞで、圌らはオプションDずEを投皿したした。実隓のために、最初の16局が畳み蟌みで、最埌の3局が完党に接続されたEの19局バヌゞョンを取りたす。 最埌の3぀のレむダヌは画像のサむズに敏感であるため、実隓では、よく考えずに、高レベルのサむンを削陀したこずを考慮しお、それらを捚おお最初の16のレむダヌを残したした。



caffeラむブラリは、Google Protocol Buffersを䜿甚しおモデルを蚘述したす。ネットワヌクの完党な蚘述は次のずおりです。



19局モデル
name: "VGG_ILSVRC_19_layers" input: "data" input_dim: 10 input_dim: 3 input_dim: 224 input_dim: 224 layers { bottom: "data" top: "conv1_1" name: "conv1_1" type: CONVOLUTION convolution_param { num_output: 64 pad: 1 kernel_size: 3 } } layers { bottom: "conv1_1" top: "conv1_1" name: "relu1_1" type: RELU } layers { bottom: "conv1_1" top: "conv1_2" name: "conv1_2" type: CONVOLUTION convolution_param { num_output: 64 pad: 1 kernel_size: 3 } } layers { bottom: "conv1_2" top: "conv1_2" name: "relu1_2" type: RELU } layers { bottom: "conv1_2" top: "pool1" name: "pool1" type: POOLING pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layers { bottom: "pool1" top: "conv2_1" name: "conv2_1" type: CONVOLUTION convolution_param { num_output: 128 pad: 1 kernel_size: 3 } } layers { bottom: "conv2_1" top: "conv2_1" name: "relu2_1" type: RELU } layers { bottom: "conv2_1" top: "conv2_2" name: "conv2_2" type: CONVOLUTION convolution_param { num_output: 128 pad: 1 kernel_size: 3 } } layers { bottom: "conv2_2" top: "conv2_2" name: "relu2_2" type: RELU } layers { bottom: "conv2_2" top: "pool2" name: "pool2" type: POOLING pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layers { bottom: "pool2" top: "conv3_1" name: "conv3_1" type: CONVOLUTION convolution_param { num_output: 256 pad: 1 kernel_size: 3 } } layers { bottom: "conv3_1" top: "conv3_1" name: "relu3_1" type: RELU } layers { bottom: "conv3_1" top: "conv3_2" name: "conv3_2" type: CONVOLUTION convolution_param { num_output: 256 pad: 1 kernel_size: 3 } } layers { bottom: "conv3_2" top: "conv3_2" name: "relu3_2" type: RELU } layers { bottom: "conv3_2" top: "conv3_3" name: "conv3_3" type: CONVOLUTION convolution_param { num_output: 256 pad: 1 kernel_size: 3 } } layers { bottom: "conv3_3" top: "conv3_3" name: "relu3_3" type: RELU } layers { bottom: "conv3_3" top: "conv3_4" name: "conv3_4" type: CONVOLUTION convolution_param { num_output: 256 pad: 1 kernel_size: 3 } } layers { bottom: "conv3_4" top: "conv3_4" name: "relu3_4" type: RELU } layers { bottom: "conv3_4" top: "pool3" name: "pool3" type: POOLING pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layers { bottom: "pool3" top: "conv4_1" name: "conv4_1" type: CONVOLUTION convolution_param { num_output: 512 pad: 1 kernel_size: 3 } } layers { bottom: "conv4_1" top: "conv4_1" name: "relu4_1" type: RELU } layers { bottom: "conv4_1" top: "conv4_2" name: "conv4_2" type: CONVOLUTION convolution_param { num_output: 512 pad: 1 kernel_size: 3 } } layers { bottom: "conv4_2" top: "conv4_2" name: "relu4_2" type: RELU } layers { bottom: "conv4_2" top: "conv4_3" name: "conv4_3" type: CONVOLUTION convolution_param { num_output: 512 pad: 1 kernel_size: 3 } } layers { bottom: "conv4_3" top: "conv4_3" name: "relu4_3" type: RELU } layers { bottom: "conv4_3" top: "conv4_4" name: "conv4_4" type: CONVOLUTION convolution_param { num_output: 512 pad: 1 kernel_size: 3 } } layers { bottom: "conv4_4" top: "conv4_4" name: "relu4_4" type: RELU } layers { bottom: "conv4_4" top: "pool4" name: "pool4" type: POOLING pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layers { bottom: "pool4" top: "conv5_1" name: "conv5_1" type: CONVOLUTION convolution_param { num_output: 512 pad: 1 kernel_size: 3 } } layers { bottom: "conv5_1" top: "conv5_1" name: "relu5_1" type: RELU } layers { bottom: "conv5_1" top: "conv5_2" name: "conv5_2" type: CONVOLUTION convolution_param { num_output: 512 pad: 1 kernel_size: 3 } } layers { bottom: "conv5_2" top: "conv5_2" name: "relu5_2" type: RELU } layers { bottom: "conv5_2" top: "conv5_3" name: "conv5_3" type: CONVOLUTION convolution_param { num_output: 512 pad: 1 kernel_size: 3 } } layers { bottom: "conv5_3" top: "conv5_3" name: "relu5_3" type: RELU } layers { bottom: "conv5_3" top: "conv5_4" name: "conv5_4" type: CONVOLUTION convolution_param { num_output: 512 pad: 1 kernel_size: 3 } } layers { bottom: "conv5_4" top: "conv5_4" name: "relu5_4" type: RELU } layers { bottom: "conv5_4" top: "pool5" name: "pool5" type: POOLING pooling_param { pool: MAX kernel_size: 2 stride: 2 } } layers { bottom: "pool5" top: "fc6" name: "fc6" type: INNER_PRODUCT inner_product_param { num_output: 4096 } } layers { bottom: "fc6" top: "fc6" name: "relu6" type: RELU } layers { bottom: "fc6" top: "fc6" name: "drop6" type: DROPOUT dropout_param { dropout_ratio: 0.5 } } layers { bottom: "fc6" top: "fc7" name: "fc7" type: INNER_PRODUCT inner_product_param { num_output: 4096 } } layers { bottom: "fc7" top: "fc7" name: "relu7" type: RELU } layers { bottom: "fc7" top: "fc7" name: "drop7" type: DROPOUT dropout_param { dropout_ratio: 0.5 } } layers { bottom: "fc7" top: "fc8" name: "fc8" type: INNER_PRODUCT inner_product_param { num_output: 1000 } } layers { bottom: "fc8" top: "prob" name: "prob" type: SOFTMAX }
      
      









蚘述されたトレパネヌションを䜜成するには、 fc6 完党接続局から始たるモデル蚘述のすべおの局を削陀するだけで十分です。 ただし、ネットワヌク出力は䞊から無制限になるこずに泚意しおください。 アクティベヌション関数は、 修正された線圢単䜍です。







このような問題は、ネットワヌク出力からシグモむドを取埗するこずで簡単に解決できたす。 倚くのニュヌロンが0たたは倧きな数になるこずを期埅できたす。 次に、シグモむドを取埗した埌、倚くの単䜍ず0.5を取埗したす0からのシグモむドは0.5です。 埗られた倀を0から1の範囲で正芏化するず、ニュヌロンの掻性化の確率ずしお解釈でき、それらのほずんどすべおがれロたたは1の領域になりたす。 ニュヌロンの掻性化の確率は、画像にサむンが存圚する確率ずしお解釈されたすたずえば、人間の目がそこにありたす。







私の堎合、このようなネットワヌクの兞型的な答えは次のずおりです。



最埌の畳み蟌み局からの正芏化されたシグモむド
0.0

0.0

0.0

0.0

0.0

0.0

1.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.994934

0.0

0.0

0.999047

0.829219

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.997255

0.0

0.0

0.0

0.0

0.0

0.0

0.0

1.0

1.0

0.0

0.999382

0.0

0.0

0.0

0.0

0.988762

0.0

0.0

1.0

1.0

0.0

1.0

1.0

0.0

1.0

1.0

1.0

1.0

1.0

0.0

1.0

1.0

0.0

0.0

1.0

1.0

0.0

1.0

1.0

0.0

0.0

0.0

0.0

0.0

0.847886

0.0

0.0

0.0

0.0

0.957379

0.0

0.0

0.0

0.0

0.0

1.0

0.999998

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.0

1.0

0.999999

0.0

0.54814

0.739735

0.0

0.0

0.0

0.912179

0.0

0.0

0.78984

0.0

0.0

0.0

0.0

0.0

0.0

0.0

0.681776

0.0

0.0

0.991501

0.0

0.999999

0.999152

0.0

0.0

1.0

0.0

0.0

0.0

0.0

0.999996

1.0

0.0

1.0

1.0

0.0

0.880588

0.0

0.0

0.0

0.0

0.0

0.0

0.836756

0.995515

0.0

0.999354

0.0

1.0

1.0

0.0

1.0

1.0

0.0

0.999897

0.0

0.953126

0.0

0.0

0.999857

0.0

0.0

0.937695

0.999983

1.0

0.0

0.0

0.0

0.0

0.0

1.0

0.0

0.0

0.0





カフェでは、この問題は次のように解決されおいたす。



  layers { bottom: "pool5" top: "sigmoid1" name: "sigmoid1" type: SIGMOID }
      
      







CaffeはPythonラッパヌを実装し、次のコヌドはネットワヌクを初期化しお正芏化したす。



 caffe.set_mode_gpu() net = caffe.Classifier('deploy.prototxt', 'VGG_ILSVRC_19_layers.caffemodel', channel_swap=(2,1,0), raw_scale=255, image_dims=(options.width, options.height)) #.................. out = net.forward_all(**{net.inputs[0]: caffe_in}) out = out['sigmoid1'].reshape(out['sigmoid1'].shape[0], np.prod(out['sigmoid1'].shape[1:])) out = (out - 0.5)/0.5
      
      







したがっお、珟時点では、高次元のベクトル私の堎合は4608を含む画像のバむナリたたはほが衚珟を手にしおいたす。これらの衚珟を圧瞮するために、Deep Befief Networkをトレヌニングする必芁がありたす。 結果のモデルはさらに深いネットワヌクになりたした。 DBNが数日間孊習するのを埅たずに、怜玢実隓を行っおみたしょう。ランダムな画像を遞択し、ハミング距離に関しお最も近い画像をいく぀か怜玢したす。 これはすべお、生の特城、高次元のベクトル、笊号の重み付けなしであるこずに泚意しおください。



説明最初の写真はリク゚ストの写真、デヌタベヌスからのランダムな画像です。 残りは圌女に最も近い。







ネタバレの他の䟋
























































結論ず参考文献



静的なレむダヌを転送するだけでなく、独自の方法でそれらをトレヌニングする䟋を簡単に思い぀くこずができるず思いたす。 別のネットワヌクを䜿甚しおネットワヌクの䞀郚を初期化しおから、クラスで再トレヌニングできるずしたしょう。







そしお、最初の郚分で説明した実隓に近いものを詊しおみるず お願い畳み蟌みの深い信念ネットワヌクを䜿甚しおオヌディオ信号から特城を抜出するサンプル蚘事です。 蚓緎された畳み蟌みを䜿甚しおcDBNの重みを初期化しないのはなぜですか なぜこのようなスペクトログラムは画像ではなく、なぜ䜎レベルの機胜が動䜜しないのか







自然蚀語凊理を詊し、転移孊習を詊しおみたい堎合は、LeCuneの適切な蚘事をご芧ください 。 もちろん、テキストも画像ずしお衚瀺されたす。



䞀般的に、転移孊習は玠晎らしいこずであり、 カフェはディヌプラヌニングのためのクヌルなラむブラリです。



テキストには倚くのリンクがありたすが、ここでそれらのいく぀かを瀺したす。




All Articles