残差ネットワークのソースを表示
←
残差ネットワーク
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[ファイル:ResBlock.png|右|サムネイル|深い残差ネットワークの残差ブロック。ここでは、残差接続は2つのレイヤーをスキップする。]] '''残差ニューラルネットワーク'''(別名:残差ネットワーク、'''ResNet''')は<ref name="resnet2">{{Cite conference|last1=He|first1=Kaiming|last2=Zhang|first2=Xiangyu|last3=Ren|first3=Shaoqing|last4=Sun|first4=Jian|date=10 Dec 2015|title=Deep Residual Learning for Image Recognition|arxiv=1512.03385}}</ref>、ウェイト層が層入力を参照して残差関数を学習する深層学習モデルである。残差ネットワークは、恒等写像を行うスキップ接続を持つネットワークであり、加算によってレイヤーの出力とマージされる。これは、強い正のバイアス重みによってゲートが開く「幹線道路ネットワーク」<ref name="highway2015may2">{{cite arXiv|eprint=1505.00387|class=cs.LG|last1=Srivastava|first1=Rupesh Kumar|last2=Greff|first2=Klaus|title=Highway Networks|date=3 May 2015|last3=Schmidhuber|first3=Jürgen}}</ref>のように振る舞う。これにより、数十から数百のレイヤーを持つ深層モデルを容易に学習させることができ、より深く学習する際にはより高い精度に近づくことができる。同一性スキップ接続は、よく「残差接続」と呼ばれ、1997年の[[長・短期記憶|LSTM]]ネットワーク<ref name="lstm19972">{{Cite journal|author=Sepp Hochreiter|author-link=Sepp Hochreiter|year=1997|title=Long short-term memory|url=https://www.researchgate.net/publication/13853244|journal=[[Neural Computation (journal)|Neural Computation]]|volume=9|issue=8|pages=1735–1780|doi=10.1162/neco.1997.9.8.1735|pmid=9377276|author2=Jürgen Schmidhuber|s2cid=1915014|author2-link=Jürgen Schmidhuber}}</ref>、トランスフォーマー・モデル(BERT、[[ChatGPT]]などのGPTモデルなど)、[[AlphaGo]] Zeroシステム、AlphaStarシステム、AlphaFoldシステムでも使用されている。 残差ネットワークは、何愷明、張翔宇、任少卿、孫剣によって開発され、[[ImageNet]] 2015コンペティションで優勝した。<ref name="imagenet">{{Cite journal|last=Deng|first=Jia|last2=Dong|first2=Wei|last3=Socher|first3=Richard|last4=Li|first4=Li-Jia|last5=Li|first5=Kai|last6=Fei-Fei|first6=Li|year=2009|title=ImageNet: A large-scale hierarchical image database|url=https://scholar.google.com/citations?view_op=view_citation&hl=en&user=rDfyQnIAAAAJ&citation_for_view=rDfyQnIAAAAJ:qjMakFHDy7sC|journal=CVPR}}</ref><ref name="ilsvrc2015">{{Cite web |url=https://image-net.org/challenges/LSVRC/2015/results.php |title=ILSVRC2015 Results |website=image-net.org}}</ref> == 公式化 == === 背景 === 2012年にImageNet用に開発されたAlexNetモデルは、8層の畳み込みニューラルネットワークだった。[[オックスフォード大学]]のVisual Geometry Group(VGG)が2014年に開発したニューラルネットワークは、3×3の畳み込み層を重ねることで19層の深さに近づいた。<ref name="vggnet2">{{cite arXiv|eprint=1409.1556|class=cs.CV|last1=Simonyan|first1=Karen|last2=Zisserman|first2=Andrew|title=Very Deep Convolutional Networks for Large-Scale Image Recognition|year=2014}}</ref>しかし、より多くの層を積み重ねることは、「劣化」問題と呼ばれる学習精度の速やかな低下につながった.<ref name="prelu2">{{cite arXiv|eprint=1502.01852|class=cs.CV|last1=He|first1=Kaiming|last2=Zhang|first2=Xiangyu|title=Delving Deep into Rectifiers: Surpassing Human-Level Performance on ImageNet Classification|last3=Ren|first3=Shaoqing|last4=Sun|first4=Jian|year=2016}}</ref> より深いネットワークが、より浅いネットワークに余分なレイヤーを積み重ねることで構築できるのであれば、より浅いネットワークよりも学習損失が大きくなることはないはずである。もし余分な層を同一性マッピングとして設定できれば、深いネットワークは浅いネットワークと同じ機能を表すことになる。オプティマイザは、パラメータ化された層に対して同一性マッピングに近づくことができないという仮説が成り立つ。 === 残差学習 === 多層ニューラルネットワークモデルでは、ある数(例えば2層や3層)の積層層を持つサブネットワークを考える。このサブネットワークが実行する基本的な機能を𝐻 ( 𝑥 ) に定義する。ここで 𝑥 はこのサブネットワークへの入力である。残差学習のアイデアは、このサブネットワークを再パラメータ化し、パラメータ層に残差関数を表現させる。𝐹 ( 𝑥 ) := 𝐻 ( 𝑥 ) - 𝑥 . 出力 𝑦 は次のように表される: : <math id="residual"> \begin{align} y & = F(x) + x \end{align}</math> === 信号伝播 === 同一性マッピングの導入により、前方および後方パスでの信号伝播が容易になる。 <ref name="resnetv2">{{Cite arXiv|arxiv=1603.05027|class=cs.CV|last=He|first=Kaiming|last2=Zhang|first2=Xiangyu|title=Identity Mappings in Deep Residual Networks}}</ref> == 残差ブロックのバリエーション == [[ファイル:ResBlockVariants.png|右|サムネイル|畳み込み残差ブロックの2つのバリエーション。左:3x3の畳み込み層を2つ持つ基本ブロック。右:次元削減のための1x1畳み込み層(例えば1/4)、3x3畳み込み層、次元復元のためのもう1つの1x1畳み込み層を持つボトルネック・ブロック。]] === プレアクト・ブロック === 事前活性化残差ブロック<ref name="resnetv22">{{cite arXiv|eprint=1603.05027|class=cs.CV|last1=He|first1=Kaiming|last2=Zhang|first2=Xiangyu|title=Identity Mappings in Deep Residual Networks|last3=Ren|first3=Shaoqing|last4=Sun|first4=Jian|year=2015}}</ref>(ResNetV2も呼ばれる)は、残差関数を適用する前に活性化関数(例えば、非直線性や正規化)を適用する。正式には、前活性化残差ブロックの計算は次のように書くことができる: : <math id="preact"> \begin{align} x_{\ell+1} & = F(\phi(x_{\ell})) + x_{\ell} \end{align}</math> ここで 𝜙 は任意の非線型活性化(ReLUなど)または正規化(LayerNormなど)操作である。この設計により、残差ブロック間の非同一マッピングの数を減らすことができる。この設計は、200層から1000層以上のモデルの学習に使用された。 GPT-2以降、Transformer BlocksはPre-activation Blocksとして実装されることが主流となっています。これは、Transformerモデルの文献では、しばしば "pre-normalization "と呼ばれています。<ref name="gpt2paper">{{Cite web |url=https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf |title=Language models are unsupervised multitask learners |author=Radford |first=Alec |archivedate=David |date=14 February 2019 |access-date=19 December 2020 |archive-date=6 February 2021 |archive-url=https://web.archive.org/web/20210206183945/https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learners.pdf |url-status=live}}</ref> === トランスフォーマーブロック === [[File:Full_GPT_architecture.svg|リンク=https://en.wikipedia.org/wiki/File:Full_GPT_architecture.png|右|サムネイル|最初の [[GPT (言語モデル)|GPT モデル]]で使用された Transformer アーキテクチャ。トランスフォーマーブロックは、マルチヘッドアテンションブロックとフィードフォワード多層パーセプトロン(MLP)ブロックの2つの残差ブロックから構成される。]] [[Transformer (機械学習モデル)|Transformer]]ブロックは、2つの残差ブロックを積み重ねたものである。各残差ブロックは残差コネクションを持つ。最初の残差ブロックはマルチヘッドアテンションブロックであり、(自己)アテンション計算の後に線形投影を行う。 2番目の残差ブロックはフィードフォワード多層パーセプトロン(MLP)ブロックである。このブロックは「逆」ボトルネックブロックに類似しており、次元を増加させる線形射影層(これは畳み込みニューラルネットワークの文脈では1x1畳み込みに相当する)と、次元を減少させるもう1つの線形射影層を持つ。 トランスフォーマーブロックの深さは4層(直線投影)です。[[GPT-3]]モデルには96のトランスフォーマー・ブロックがある(トランスフォーマーの文献では、トランスフォーマー・ブロックはしばしば「トランスフォーマー・レイヤー」と呼ばれる)。このモデルは、トランスフォーマーブロックの96x4層と、入力埋め込みと出力予測のための余分な層を含めて、約400の投影層の深さを持つ。 非常に深いトランスフォーマーモデルは、残差コネクションなしではうまく学習できない。<ref name="lose_rank">{{Cite arXiv|arxiv=2103.03404|class=cs.LG|last=Dong|first=Yihe|last2=Cordonnier|first2=Jean-Baptiste|title=Attention is not all you need: pure attention loses rank doubly exponentially with depth}}</ref> == 関連作品 == 1961年に出版されたFrank Rosenblatt著の本の中で、スキップ接続を持つ3層の多層パーセプトロン(MLP)モデルが紹介されている(第15章 p313)。このモデルは「交差結合システム」と呼ばれ、スキップ結合は交差結合の一形態である。<ref name="mlpbook2">{{cite book |last=Rosenblatt |first=Frank |author-link= |date=1961 |title=Principles of neurodynamics. perceptrons and the theory of brain mechanisms |url=https://safari.ethz.ch/digitaltechnik/spring2018/lib/exe/fetch.php?media=neurodynamics1962rosenblatt.pdf#page=327 |location= |publisher= |page= |isbn=}}</ref> == 生物学的な関係 == 最初のResidual Networkの論文では、生物学的システムに示唆されたとは主張していない。しかし、その後の研究で、Residual Networkは生物学的に妥当なアルゴリズムと関連づけられるようになった。. <ref name="liao2016"> {{Cite conference|first1=Qianli|last=Liao|first2=Tomaso|last2=Poggio|date=2016|title=Bridging the Gaps Between Residual Learning, Recurrent Neural Networks and Visual Cortex}}</ref> <ref name="xiao2018"> {{Cite conference|first1=Will|last=Xiao|first2=Honglin|last2=Chen|first3=Qianli|last3=Liao|first4=Tomaso|last4=Poggio|date=2018|title=Biologically-Plausible Learning Algorithms Can Scale to Large Datasets}}</ref> 2023年に『[[サイエンス]]』誌に発表された研究で、昆虫(ミバエの幼虫)の脳の完全な[[コネクトーム]]が公開された。この研究では、ResNetsを含む人工ニューラルネットワークのスキップ接続に似た「多層ショートカット」が発見された。<ref name="Winding20232">{{Cite journal|last1=Winding|first1=Michael|last2=Pedigo|first2=Benjamin|last3=Barnes|first3=Christopher|last4=Patsolic|first4=Heather|last5=Park|first5=Youngser|last6=Kazimiers|first6=Tom|last7=Fushiki|first7=Akira|last8=Andrade|first8=Ingrid|last9=Khandelwal|first9=Avinash|date=10 Mar 2023|title=The connectome of an insect brain|journal=Science|volume=379|issue=6636|pages=eadd9330|doi=10.1126/science.add9330|pmc=7614541|pmid=36893230|last10=Valdes-Aleman|first10=Javier|last11=Li|first11=Feng|last12=Randel|first12=Nadine|last13=Barsotti|first13=Elizabeth|last14=Correia|first14=Ana|last15=Fetter|first15=Fetter|last16=Hartenstein|first16=Volker|last17=Priebe|first17=Carey|last18=Vogelstein|first18=Joshua|last19=Cardona|first19=Albert|last20=Zlatic|first20=Marta|biorxiv=10.1101/2022.11.28.516756v1|s2cid=254070919}}</ref> == 関連項目 == * [[勾配消失問題]] == 参考資料 == {{reflist}} [[Category:ディープラーニング]] [[Category:人工ニューラルネットワーク]]
このページで使用されているテンプレート:
テンプレート:Cite arXiv
(
ソースを閲覧
)
テンプレート:Cite book
(
ソースを閲覧
)
テンプレート:Cite conference
(
ソースを閲覧
)
テンプレート:Cite journal
(
ソースを閲覧
)
テンプレート:Cite web
(
ソースを閲覧
)
テンプレート:Reflist
(
ソースを閲覧
)
残差ネットワーク
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報