C++でバックプロパゲーションを学習しています。入力層2、中間層2、出力1のものは、作れたのですが中間層が100個になったものが作れません。どなたか教えてください。
h1 = ( x1 * w[1][1] ) + ( x2 * w[1][3] ) - theta;
fh1 = 1 / ( 1 + exp( -1 * h1 ) );
h2 = ( x1 * w[1][2] ) + ( x2 * w[1][4] ) - theta;
fh2 = 1 / ( 1 + exp( -1 * h2 ) );
D = ( T - y ) * y * ( 1 - y );
w[2][1] = w[2][1] + ita * D * fa1;
w[2][2] = w[2][2] + ita * D * fa2;
w[1][1] = w[1][1] + ita * ( ha1 * ( 1 - ha1 ) * ( w[2][1] * D )
* x1 );
w[1][2] = w[1][2] + ita * ( ha2 * ( 1 - ha2 ) * ( w[2][2] * D )
* x1 );
w[1][3] = w[1][3] + ita * ( ha1 * ( 1 - ha1 ) * ( w[2][1] * D )
* x2 );
w[1][4] = w[1][4] + ita * ( ha2 * ( 1 - ha2 ) * ( w[2][2] * D )
* x2 );
No.2ベストアンサー
- 回答日時:
こんにちは。
補足コメントを読みました。
部屋の中に転がっている雑誌をたまたま拾い上げてみたら、Cマガジン1996年6月号(ソフトバンク)を発見したわけですが、このときの巻頭特集は、「逆伝搬型ニューラルネット」でした。
C言語で手書き数字の認識について説明がありました。
それよりも入手性が良さそうな入門書としては、今となっては刊行時期が遙か昔ですが、
>入門と実習
>ニューロコンピュータ
>監修 中野 馨
>編 飯沼一元
>ニューロンネットグループ
>著 桐谷 滋
>技術評論社
>ISBN4-87408-308-0 定価2500円
>入門と実習 ニューロコンピュータ [単行本]
>http://www.amazon.co.jp/s/ref=nb_sb_noss_1?__mk_ …
>中古品の出品:15¥ 85より
安いのはいいけど、ちょっとショック。
ここまで打ち込んでみてからソースコードを確認してみたら古すぎました。
C/C++での2次元配列の取り扱い方法は以下を参考にお願いします。
>2次元配列の特徴と注意点
>http://mkubara.com/index.php/2%E6%AC%A1%E5%85%83 …
質問として掲載されている演算部分の式では重み付けを表していると思われる2次元配列の引数の与え方の変化はよく見ると規則性がありますよね?
この規則性を応用すれば良さそうです。
1個だけ考えてみると、
>w[1][1] = w[1][1] + ita * ( ha1 * ( 1 - ha1 ) * ( w[2][1] * D ) * x1 );
w[i][j] = w[i][j] + ita * ( ha1 * ( 1 - ha1 ) * ( w[i+1][j] * D) * x1 );
それぞれの変数、iとjは1から始まると考えるとして、for文を2個組み合わせることになると思います。
本職の方に意見するような話は気が引けるのでここの辺までにしておきます。
No.1
- 回答日時:
こんばんは。
自分自身ではプログラムを組みませんのでネットで拾ってきた情報です。
検索したらこういったページが見つかりました。
>ニューラルネットワーク
>http://www.sist.ac.jp/~suganuma/kougi/other_lect …
ページの中で紹介されている「プログラム」をクリックすると次のページが表示されます。
>http://www.sist.ac.jp/~suganuma/cpp/3-bu/18-sho/ …
>h1 = ( x1 * w[1][1] ) + ( x2 * w[1][3] ) - theta;
2次元配列の引数が固定になっているのでこれを変数にしてfor文でも使ってループ処理をしてあげれば記述できそうな気がします。
あと、【中間層が100個】というのはどういった意図ですか?
この回答への補足
回答ありがとうございます。
今私は、論文の追試をしています。論文の中で使われているネットワークが中間層100個なのでどうしたらできるか判らなくて投稿しました。
具体的にどのように書けばいいか教えてもらえると幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 洋楽 A-haのボーカルと消臭力のミゲルくんは似てると思いますか?特に目元と表情が。 1 2022/05/08 08:37
- その他(音楽・ダンス・舞台芸能) A-haのボーカルとカズレーザーって似てますか? 4 2023/07/10 21:30
- 洋楽 A-haの三人は背が高いイメージありますか? 3 2022/05/09 00:25
- エアコン・クーラー・冷暖房機 どうやったらできるの? 1 2023/05/31 05:10
- 物理学 積分について(2) 2 2022/11/22 13:20
- その他(ニュース・時事問題) 旧統一教会の応援を認めた岸、献金強要被害について「認識していた」❓❓❓ 4 2022/07/29 14:54
- エアコン・クーラー・冷暖房機 エアコンに詳しい方!! ご回答頂けると幸いです…。 ハイセンス HA-S25D-WS アイリスオーヤ 4 2022/07/03 01:44
- エアコン・クーラー・冷暖房機 エアコンに詳しい方!! ご回答頂けると幸いです…。 ハイセンス HA-S25D-WS アイリスオーヤ 5 2022/07/03 14:55
- その他(悩み相談・人生相談) 日本の「貧富の格差」は悪いことですか?資本主義国家なら当然ことではないですか? 4 2022/06/23 12:14
- 据え置き型ゲーム機 PS4の音声をBluetoothイヤホンで聴きたい 1 2022/11/07 03:07
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
VBのFunctionで、配列を引数...
-
【VBA】配列とWorksheetFunctio...
-
[Excel2000_VBA] 型が一致しま...
-
for each の現在の配列ポインタ...
-
ListViewで、非表示列って作れ...
-
VLOOKUP関数で、一番下...
-
友愛数を探すプログラム
-
VBA 1次元配列を2次元に追加する
-
Array配列の末尾に追加したい。
-
AES暗号にて、AES_set_encrypt_...
-
VBAで近似曲線の係数取得
-
配列変数の添字が範囲外ですと...
-
linest関数に配列を渡す
-
VBAで多次元配列のインデックス...
-
VB2008: CSV を二次元配列に読...
-
2次元動的配列の第一引数のみを...
-
subの配列引数をoptionalで使う...
-
Excel-VBAの配列「Public Const...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
配列数式の解除
-
2つ以上の変数を比較して最大数...
-
VBA 1次元配列を2次元に追加する
-
特定のセル範囲で4文字以上入力...
-
for each の現在の配列ポインタ...
-
VBのFunctionで、配列を引数...
-
subの配列引数をoptionalで使う...
-
VB6 配列を初期化したい
-
ListViewで、非表示列って作れ...
-
配列変数の添字が範囲外ですと...
-
Excel-VBAの配列「Public Const...
-
2次元動的配列の第一引数のみを...
-
VBAで近似曲線の係数取得
-
VLOOKUP関数で、一番下...
-
配列に同じ値を入れる方法
-
エクセルで最小値から0を除く方法
-
linest関数に配列を渡す
-
配列を任意の数値で埋める方法
-
Dim は何の略ですか?
-
配列内の内容を全て表示する方法
おすすめ情報