🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

3793閲覧

重み付き和の最初にくる不思議な重みについて!? 誤差逆伝播 バックプロバケーション

Guamstreet

総合スコア31

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2019/09/14 01:13

編集2019/09/14 08:11

Youtubeに分かり易い動画があり、それを見てDeep Learningの勉強しています。

引用で添付させて頂いた、以下の動画のスクリーンショット(8:03秒あたり)に、2層めの『重み付き和(z)』の計算例が記載されています。

イメージ説明
(以下、引用動画のリンクを追加させて頂きました、失礼致しました)
【深層学習】誤差逆伝播法|バックプロパゲーション_youtube

これで、一番最初にくる重みが理解出来ません(赤枠で表示した重み)

これは何ですか?

各重みとニューロンを足して行って、重み付き和になるのですが、一番最初の重みだけっていうのが理解出来ません、しかも、2層めの0ニューロンから1ニューロンと表示されています。

動画の6:18秒あたりから始まるニューロンの図では、最初は1入力層(x1)から1層めの1ニューロン(a11)という風になっています(赤枠で表示した重み)

イメージ説明

図中のどこにも『0番目のニューロン』などと表示されていません。

なぜ0番目のニューロンなどというものが、いきなり現れるのでしょうか?

それと、この不思議な重みの必要性とは一体、なんでしょうか?

他のサイトで、左から右へと、ニューラルネットワークが伝播して行くときに、入力層の一番最後に『1と言う数字のバイアス』というものがあり、これもよく理解出来ませんでした。

これと何か関係があったりするのでしょうか?

と言う事で、この最初の重みについて、すいませんが教えて頂きたく、どうぞよろしくお願いいたします。

直接のご教授でも、参考サイトのご紹介でも歓迎です。

併せて、どうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

quickquip

2019/09/14 02:25

動画のURLはちゃんとリンクになるように貼って欲しいです
Guamstreet

2019/09/14 08:11

大変失礼致しました。 リンクを張りましたので、ご報告申し上げます。
guest

回答2

0

ベストアンサー

0番目のニューロンは、バイアスを表現するための架空のニューロンです。

学習は重みを調整することで進めますが、入力の影響を受けない調整も必要です。その調整を「バイアス」でやります。学習は、重みもバイアスも両方同時に調整していく必要があります。
(バイアスは一次方程式のy=ax+bのbみたいなものです。入力のxに影響されない調整を行うためのパラメータです。)

ただ、重みとバイアスを別々に調整していくのは面倒です。そこで、常に入力が1固定の架空のニューロンを用意しています。入力が1固定なら本物の入力の影響を受けないので、この特別なニューロンの重みをバイアスとして使えます。こうすればバイアスのことは忘れて重みだけを考えれば良くなり、計算がシンプルにできるようになります。

1番最初の項が重みだけに見えますが、ここには0番目のニューロンの固定の入力a=1がかけ合わさっています。それが省略されているだけです。

投稿2019/09/14 02:01

編集2019/09/14 02:15
segavvy

総合スコア1038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Guamstreet

2019/09/14 08:41

ご回答、ありがとうございました! 今まで、バイアスの1と言うのは何だろう?と思って居ましたが、今回、質問させて頂いた0番目のニューロンと結び付いて、理解する事が出来ましたので、勉強が一歩前進したので嬉しいです。 ただ、バイアスを使う事によって、入力の影響を受けない調整をすると言うのが、良く理解出来ません。 なぜバイアス(1)を使う事で、入力(x)層の影響を受けないようになるのでしょうか? 連立方程式の例を出して下さっていますが、ようするに切片を決めておくと言うことなのですか? でも、なぜ?そうすることが正しい結果と結び着くのか、そのところもさっぱりわかりません。 もうしわけありませんが、もう少し、詳細に教えて頂けると嬉しいです(^_^;) どうぞよろしくお願いいたします。
segavvy

2019/09/14 11:37 編集

方程式の例で言えば、切片を決めておくのではなく、切片を調整できるようにしておくためのものです。 以下、ちょっと極端な例ですが、話を簡単にするために、1層しかなく入力層と出力層が直接つながる形だったとします。 この時に、入力のxがすべて0の場合、バイアスがないと、重みをどう調整しても出力がすべて0になってしまい、出力に応じた重みの調整ができません。本物の入力とは別に、常に入力が1である架空のニューロンがあれば、その重みを調整することで出力を調整できるようになります。この重みがバイアスです。 パーセプトロンのθの役割に相当するもの、とでも言えばいいのでしょうか。 説明がうまくできなくて恐縮です。
Guamstreet

2019/09/15 00:47

再度のご回答、大変うれしく思います、どうもありがとうございます! いえいえ、説明がうまくできず恐縮だなんて、とんでもないです、 ご回答下さいました下りの、 『入力のxがすべて0の場合、バイアスがないと、重みをどう調整しても出力がすべて0になってしまい、出力に応じた重みの調整ができません。』 で、すっきり理解する事ができました! 初学者の私にも理解出来るように、分かり易い説明頂き、ほんとに感謝です! 今までバイアスってなんだろう?なんで定数の1なのだろう?と、いろいろなサイト様などを参考に勉強しつつも、理解出来きないまま、頭の中が悶々としていました。 それが一気に、視界が晴れて見通し良くなった感じです! 重ね重ね、ほんとにありがとうございます! 確かに仰られている通りですね! 分かってしまえば、1と言う定数のバイアスの必要性が、まったく、そのとおりと直ぐに理解出来ますが、初学者の常と申しますか、ちょっと考えれば分かりそうな内容も、なかなか、そこにたどり着けないものだなと感じました。 もっともっと勉強に励まなければいけないと思いました。 適切な回答を下さり感謝致します!!
guest

0

a_0^1_は下付き添字、^は上付き添字だと思ってください)もあると考えることができます。1という定数にしているので、省略していると考えてください。

この項でバイアスと呼ばれるものを表しています。

適当な重みが最適化によって求まり、1に重みをかけますから適当な重み分だけ足したことになります。

古典的な説明だと、これ(バイアス)でどれくらいの値でニューロンが発火するのかを制御します。それ以外の重みは、各入力の影響をどれだけ重視するのかを決定するためのものなので、役割が違います。

投稿2019/09/14 04:40

hayataka2049

総合スコア30935

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Guamstreet

2019/09/14 08:46

ご回答頂き、ありがとうございました! 今まで謎だったバイアスが、今回の質問の事だったと結び着いて、嬉しいです。 ただ、他の回答者さまにもコメントさせて頂きましたが、バイアスの必要性と使い方が、さっぱり分かりません。 1と言う定数がなぜ、必要なのか?具体的にどうやって使ったら、どう良い事がおきるのか? そのへんが理解出来ないです。 もう少し、詳細にご教示頂けると、すごく嬉しいです(^_^;) もし宜しかったら、本件につき、引き続きコメント頂けると幸いです。
hayataka2049

2019/09/14 15:18

質問者さんがどの程度理解しているかわからないので、現時点での理解を言語化してみてもらえませんか?(単純パーセプトロンでいいです)
Guamstreet

2019/09/15 00:57

再度のご回答下さりまして、ほんとうにありがとうございます! 私に対し的確な回答しようと、投げかけて下さいました、せっかくのコメントですが、他の方の回答で、今回の私の質問の目的を達する事が出来ました。 どうもありがとうございました。 せっかくここまでお付き合いしてくださましたのに、恐縮の気持ちでいっぱいです。 ですが、私の質問に答えようと、その暖かいお心は十分に頂きましたので、感謝の思いです。 今回は、私の質問にご回答くださり、ほんとうにどうもありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問