プロデル、調査 その34

# 概要
プロデルが、CLRらしいので、調べて見た。
練習問題やってみた。

# 練習問題
ニューラルネットワークで、xorを学習せよ。

# サンプルコード

```
※コンソール


アイリスデータは，{}
アイリスデータ(1)は「0,0,0,0,Iris-0」
アイリスデータ(2)は「0,1.0,0,0,Iris-1」
アイリスデータ(3)は「0,0,1.0,0,Iris-1」
アイリスデータ(4)は「1.0,1.0,1.0,1.0,Iris-0」
ネットワークは，一層（4，3）を作ったもの
学習数は，500
学習率は，0.1
正解という行列（アイリスデータの個数，3）を作る
データという行列（アイリスデータの個数，4）を作る
アイリスデータの個数回，カウンタ１に１からカウントしながら繰り返す
	一行は，アイリスデータ（カウンタ１）を「,」で分割したもの
	4回，添字に１からカウントしながら繰り返す
		データの中身（カウンタ1）（添字）は，一行（添字）
	繰り返し終わり
	一行（5）について分岐
		「Iris-0」の場合
			正解の中身（カウンタ1）は，｛1，0，0｝
		「Iris-1」の場合
			正解の中身（カウンタ1）は，｛0，1，0｝
	分岐終わり
繰り返し終わり
学習数回，繰り返す
	勾配は，ネットワークで正解が正解でデータにおける勾配を計算したもの
	勾配の個数回，キーに１からカウントしながら繰り返す
		ネットワークのパラメータ（キー）から，学習率を勾配（キー）に全部かけたものを破壊的に引く
	繰り返し終わり
	ネットワークで正解が正解でデータにおける損失を計算したものを表示する
繰り返し終わり

結果1は，ネットワークでデータから推定したもの
//結果1を表示する
「XORを学習した」を表示する
４回，カウンタ１に１からカウントしながら繰り返す
	データの中身（カウンタ1）（１）が，０　かつ　データの中身（カウンタ1）（２）が　０　かつ　データの中身（カウンタ1）（３）が　０　かつ　データの中身（カウンタ1）（４）が　０　なら
		「０，０　は」を表示する
	そして
	データの中身（カウンタ1）（１）が，０　かつ　データの中身（カウンタ1）（２）が　１　かつ　データの中身（カウンタ1）（３）が　０　かつ　データの中身（カウンタ1）（４）が　０　なら
		「１，０　は」を表示する
	そして
	データの中身（カウンタ1）（１）が，０　かつ　データの中身（カウンタ1）（２）が　０　かつ　データの中身（カウンタ1）（３）が　１　かつ　データの中身（カウンタ1）（４）が　０　なら
		「０，１　は」を表示する
	そして
	データの中身（カウンタ1）（１）が，１　かつ　データの中身（カウンタ1）（２）が　１　かつ　データの中身（カウンタ1）（３）が　１　かつ　データの中身（カウンタ1）（４）が　１　なら
		「１，１　は」を表示する
	そして
	結果１の中身（カウンタ1）（１）＞　結果１の中身（カウンタ1）（２）　なら
		「　　　　　０」を表示する
	そして
	結果１の中身（カウンタ1）（１）<　結果１の中身（カウンタ1）（２）　なら
		「　　　　　１」を表示する
	そして
繰り返し終わり




行列とは
	＋中身　＝｛｝
	＋大きさは，｛0，0｝
	はじめ（行，列）の手順
		行回，現在行に１からカウントして繰り返す
			【一行】
			一行は，｛｝
			列回，現在列に１からカウントして繰り返す
				一行（現在列）は，0.0
			繰り返し終わり
			中身（現在行）は，一行
		繰り返し終わり
		大きさは，｛行，列｝
	終わり
	自分を［他の行列：行列］に左からかける手順
		もし大きさ（2）が，他の行列の大きさ（1）でないなら
			「かける相手の大きさ（1）が［他の行列の大きさ（2）］なので乗算できません」というエラーを発生させる
		もし終わり
		計算後という行列（大きさ（1），他の行列の大きさ（2））を作る
		大きさ（1）回，現在行に１からカウントしながら繰り返す
			他の行列の大きさ（2）回，現在列に１からカウントしながら繰り返す
				大きさ（2）回，現在要素に１からカウントしながら繰り返す
					計算後の中身（現在行，現在列）は，計算後の中身（現在行，現在列）＋（中身（現在行，現在要素）×他の行列の中身（現在要素，現在列））
				繰り返し終わり
			繰り返し終わり
		繰り返し終わり
		計算後を返す
	終わり
	自分を［他の行列：行列］に右からかける手順
		もし大きさ（1）が，他の行列の大きさ（2）でないなら
			「かける相手の大きさ（2）が［他の行列の大きさ（2）］なので乗算できません」というエラーを発生させる
		もし終わり
		計算後という行列（他の行列の大きさ（1），大きさ（2））を作る
		他の行列の大きさ（1）回，現在行に１からカウントしながら繰り返す
			大きさ（2）回，現在列に１からカウントしながら繰り返す
				他の行列の大きさ（2）回，現在要素に１からカウントしながら繰り返す
					計算後の中身（現在行，現在列）は，計算後の中身（現在行，現在列）＋（他の行列の中身（現在行，現在要素）×中身（現在要素，現在列））
				繰り返し終わり
			繰り返し終わり
		繰り返し終わり
		計算後を返す
	終わり
	自分に［他の行列：行列］を足す手順
		もし（大きさ（1）が他の行列の大きさ（1）でない）または（大きさ（2）が他の行列の大きさ（2））でないなら
			「大きさが異なる行列は足せません」というエラーを発生させる
		もし終わり
		計算後という行列（大きさ（1），大きさ（2））を作る
		大きさ（1）回，現在行に１からカウントしながら繰り返す
			大きさ（2）回，現在列に１からカウントしながら繰り返す
				計算後の中身（現在行）（現在列）は，中身（現在行）（現在列）＋他の行列の中身（現在行）（現在列）
			繰り返し終わり
		繰り返し終わり
		計算後を返す
	終わり
	自分に［他の行列：行列］を破壊的に足す手順
		もし（大きさ（1）が他の行列の大きさ（1）でない）または（大きさ（2）が他の行列の大きさ（2）でない）なら
			「大きさが異なる行列は足せません」というエラーを発生させる
		もし終わり
		大きさ（1）回，現在行に１からカウントしながら繰り返す
			大きさ（2）回，現在列に１からカウントしながら繰り返す
				中身（現在行）（現在列）は，中身（現在行）（現在列）＋他の行列の中身（現在行）（現在列）
			繰り返し終わり
		繰り返し終わり
	終わり
	自分に［他の行列：行列］を全部足す手順
		【関係筋】は，｛大きさ（1），大きさ（2），他の行列の大きさ（1），他の行列の大きさ（2）｝
		もし関係筋（1）が関係筋（3）かつ1が関係筋（4）なら
			計算後という行列（大きさ（1），大きさ（2））を作る
			大きさ（1）回，現在行に１からカウントしながら繰り返す
				大きさ（2）回，現在列に１からカウントしながら繰り返す
					計算後の中身（現在行）（現在列）は，中身（現在行）（現在列）＋他の行列の中身（現在行）（1）
				繰り返し終わり
			繰り返し終わり
			計算後を返す
		もし終わり
		もし関係筋（2）が関係筋（4）かつ1が関係筋（3）なら
			計算後という行列（大きさ（1），大きさ（2））を作る
			大きさ（1）回，現在行に１からカウントしながら繰り返す
				大きさ（2）回，現在列に１からカウントしながら繰り返す
					計算後の中身（現在行）（現在列）は，中身（現在行）（現在列）＋　他の行列の中身（1）（現在列）
				繰り返し終わり
			繰り返し終わり
			計算後を返す
		もし終わり
		「行列の大きさがおかしいので足せません」というエラーを発生させる
	終わり
	自分に［数：浮動小数］を全部足す手順
		計算後という行列（大きさ（1），大きさ（2））を作る
		大きさ（1）回，現在行に１からカウントしながら繰り返す
			大きさ（2）回，現在列に１からカウントしながら繰り返す
				計算後の中身（現在行）（現在列）は，中身（現在行）（現在列）＋　数
			繰り返し終わり
		繰り返し終わり
		計算後を返す
	終わり
	自分から［他の行列：行列］を引く手順
		もし（大きさ（1）が他の行列の大きさ（1）でない）または（大きさ（2）が他の行列の大きさ（2）でない）なら
			「大きさが異なる行列は引けません」というエラーを発生させる
		もし終わり
		計算後という行列（大きさ（1），大きさ（2））を作る
		大きさ（1）回，現在行に１からカウントしながら繰り返す
			大きさ（2）回，現在列に１からカウントしながら繰り返す
				計算後の中身（現在行）（現在列）は，中身（現在行）（現在列）－　他の行列の中身（現在行）（現在列）
			繰り返し終わり
		繰り返し終わり
		計算後を返す
	終わり
	自分から［他の行列：行列］を破壊的に引く手順
		もし（大きさ（1）が他の行列の大きさ（1）でない）または（大きさ（2）が他の行列の大きさ（2）でない）なら
			「大きさが異なる行列は引けません」というエラーを発生させる
		もし終わり
		大きさ（1）回，現在行に１からカウントしながら繰り返す
			大きさ（2）回，現在列に１からカウントしながら繰り返す
				中身（現在行）（現在列）は，中身（現在行）（現在列）－　他の行列の中身（現在行）（現在列）
			繰り返し終わり
		繰り返し終わり
	終わり
	自分から［他の行列：行列］を全部引く手順
		【関係筋】は，｛大きさ（1），大きさ（2），他の行列の大きさ（1），他の行列の大きさ（2）｝
		もし関係筋（1）が関係筋（3）かつ1が関係筋（4）なら
			計算後という行列（大きさ（1），大きさ（2））を作る
			大きさ（1）回，現在行に１からカウントしながら繰り返す
				大きさ（2）回，現在列に１からカウントしながら繰り返す
					計算後の中身（現在行）（現在列）は，中身（現在行）（現在列）－　他の行列の中身（現在行）（1）
				繰り返し終わり
			繰り返し終わり
			計算後を返す
		もし終わり
		もし関係筋（2）が関係筋（4）かつ1が関係筋（3）なら
			計算後という行列（大きさ（1），大きさ（2））を作る
			大きさ（1）回，現在行に１からカウントしながら繰り返す
				大きさ（2）回，現在列に１からカウントしながら繰り返す
					計算後の中身（現在行）（現在列）は，中身（現在行）（現在列）－　他の行列の中身（1）（現在列）
				繰り返し終わり
			繰り返し終わり
			計算後を返す
		もし終わり
		「行列の大きさがおかしいので引けません」というエラーを発生させる
	終わり
	自分から［数：浮動小数］を全部引く手順
		計算後という行列（大きさ（1），大きさ（2））を作る　
		大きさ（1）回，現在行に１からカウントしながら繰り返す
			大きさ（2）回，現在列に１からカウントしながら繰り返す
				計算後の中身（現在行）（現在列）は，中身（現在行）（現在列）－　数
			繰り返し終わり
		繰り返し終わり
		計算後を返す
	終わり
	自分に［他の行列：行列］をかける手順
		もし（大きさ（1）が他の行列の大きさ（1）でない）または（大きさ（2）が他の行列の大きさ（2）でない）なら
			「行列の大きさがおかしいのでかけられません」というエラーを発生させる
		もし終わり
		計算後という行列（大きさ（1），大きさ（2））を作る
		大きさ（1）回，現在行に１からカウントしながら繰り返す
			大きさ（2）回，現在列に１からカウントしながら繰り返す
				計算後の中身（現在行）（現在列）は，中身（現在行）（現在列）×　他の行列の中身（現在行）（現在列）
			繰り返し終わり
		繰り返し終わり
		計算後を返す
	終わり
	自分に［他の行列：行列］を全部かける手順
		【関係筋】は，｛大きさ（1），大きさ（2），他の行列の大きさ（1），他の行列の大きさ（2）｝
		もし（関係筋（1）が関係筋（3）でない）または（1が関係筋（4）でない）なら
			「行列の大きさがおかしいのでかけられません」というエラーを発生させる
		もし終わり
		計算後という行列（大きさ（1），大きさ（2））を作る
		大きさ（1）回，現在行に１からカウントしながら繰り返す
			大きさ（2）回，現在列に１からカウントしながら繰り返す
				計算後の中身（現在行）（現在列）は，中身（現在行）（現在列）×　他の行列の中身（現在行）（1）
			繰り返し終わり
		繰り返し終わり
		計算後を返す
	終わり
	自分に［数：数値］を全部かける手順
		計算後という行列（大きさ（1），大きさ（2））を作る
		大きさ（1）回，現在行に１からカウントしながら繰り返す
			大きさ（2）回，現在列に１からカウントしながら繰り返す
				計算後の中身（現在行）（現在列）は，中身（現在行）（現在列）×　数
			繰り返し終わり
		繰り返し終わり
		計算後を返す
	終わり
	自分を［他の行列：行列］で全部割る手順
		関係筋は，｛大きさ（1），大きさ（2），他の行列の大きさ（1），他の行列の大きさ（2）｝
		もし（関係筋（1）が関係筋（3）でない）または（1が関係筋（4）でない）なら
			「行列の大きさがおかしいので割れません」というエラーを発生させる
		もし終わり
		計算後という行列（大きさ（1），大きさ（2））を作る
		大きさ（1）回，現在行に１からカウントしながら繰り返す
			大きさ（2）回，現在列に１からカウントしながら繰り返す
				計算後の中身（現在行）（現在列）は，中身（現在行）（現在列）÷　他の行列の中身（現在行）（1）
			繰り返し終わり
		繰り返し終わり
		計算後を返す
	終わり
	自分を［数：浮動小数］で全部割る手順
		計算後という行列（大きさ（1），大きさ（2））を作る
		大きさ（1）回，現在行に１からカウントしながら繰り返す
			大きさ（2）回，現在列に１からカウントしながら繰り返す
				計算後の中身（現在行）（現在列）は，中身（現在行）（現在列）÷　数
			繰り返し終わり
		繰り返し終わり
		計算後を返す
	終わり
	自分を転置する手順
		計算後という行列（大きさ（2），大きさ（1））を作る
		大きさ（1）回，元の行に１からカウントしながら繰り返す
			大きさ（2）回，元の列に１からカウントしながら繰り返す
				計算後の中身（元の列）（元の行）は，中身（元の行）（元の列）
			繰り返し終わり
		繰り返し終わり
		計算後を返す
	終わり
	各列の和を取得する手順
		計算後という行列（1，大きさ（2））を作る
		大きさ（1）回，現在行に１からカウントしながら繰り返す
			大きさ（2）回，現在列に１からカウントしながら繰り返す
				計算後の中身（1）（現在列）は，計算後の中身（1）（現在列）＋　中身（現在行）（現在列）
			繰り返し終わり
		繰り返し終わり
		計算後を返す
	終わり
	各行の和を取得する手順
		計算後という行列（大きさ（1），1）を作る
		大きさ（1）回，現在行に１からカウントしながら繰り返す
			大きさ（2）回，現在列に１からカウントしながら繰り返す
				計算後の中身（現在行）（1）は，計算後の中身（現在行）（1）＋　中身（現在行）（現在列）
			繰り返し終わり
		繰り返し終わり
		計算後を返す
	終わり
	最大値を取得する手順
		計算後という行列（大きさ（1），1）を作る
		大きさ（1）回，現在行に１からカウントしながら繰り返す
			大きさ（2）回，現在列に１からカウントしながら繰り返す
				もし中身（現在行）（現在列）が計算後の中身（現在行）（1）より大きいなら
					計算後の中身（現在行）（1）は，中身（現在行）（現在列）
				もし終わり
			繰り返し終わり
		繰り返し終わり
		計算後を返す
	終わり
	最小値を取得する手順
		計算後という行列（大きさ（1），1）を作る
		大きさ（1）回，現在行に１からカウントしながら繰り返す
			大きさ（2）回，現在列に１からカウントしながら繰り返す
				もし中身（現在行）（現在列）が計算後の中身（現在行）（1）より小さいなら
					計算後の中身（現在行）（1）は，中身（現在行）（現在列）
				もし終わり
			繰り返し終わり
		繰り返し終わり
		計算後を返す
	終わり
	自分を表示する手順
		中身を，一行へそれぞれ繰り返す
			一行を「，」で繋げたものをコンソールへ表示して改行する
		繰り返し終わり
	終わり
	自分をランダム化する手順
		大きさ（1）回，現在行に１からカウントしながら繰り返す
			大きさ（2）回，現在列に１からカウントしながら繰り返す
				中身（現在行）（現在列）は，10000の乱数　÷　10000
			繰り返し終わり
		繰り返し終わり
	終わり
	最大値となる添字を取得する手順
		計算後という行列（大きさ（1），1）を作る
		大きさ（1）回，現在行に１からカウントしながら繰り返す
			【最大値】
			【最大値添字】
			大きさ（2）回，現在列に１からカウントしながら繰り返す
				もし中身（現在行）（現在列）が，最大値より大きいなら
					最大値は，中身（現在行）（現在列）
					最大値添字は，現在列
				もし終わり
			繰り返し終わり
			計算後の中身（現在行）（1）は，最大値添字
		繰り返し終わり
		計算後を返す
	終わり
	自分を【相手：行列】で比較する手順
		正解数は，0
		相手の大きさ（2）回，現在列に１からカウントして繰り返す
			もし自分の中身（1）（現在列）が相手の中身（1）（現在列）なら
				正解数へ1を足す
			もし終わり
		繰り返し終わり
		正解数 ÷ 相手の大きさ（2）を返す
	終わり
終わり

【X：行列】を指数関数で処理する手順
	計算後という行列（Xの大きさ（1），Xの大きさ（2））を作る
	Xの大きさ（1）回，現在行に１からカウントして繰り返す
		Xの大きさ（2）回，現在列に１からカウントして繰り返す
			計算後の中身（現在行）（現在列）は，（Xの中身（現在行）（現在列）＋　0.0）の自然対数乗
		繰り返し終わり
	繰り返し終わり
	計算後を返す
終わり

【X：行列】を対数関数で処理する手順
	計算後という行列（Xの大きさ（1），Xの大きさ（2））を作る
	Xの大きさ（1）回，現在行に１からカウントして繰り返す
		Xの大きさ（2）回，現在列に１からカウントして繰り返す
			計算後の中身（現在行）（現在列）は，1の自然対数乗でXの中身（現在行）（現在列）の対数
		繰り返し終わり
	繰り返し終わり
	計算後を返す
終わり

【X：行列】をソフトマックスで処理する手順
	計算後という行列（Xの大きさ（1），Xの大きさ（2））を作る
	分子という行列（Xの大きさ（1），Xの大きさ（2））を作る
	分母という行列（Xの大きさ（1），1）を作る
	Cは，Xの最大値
	分子は，XからCを全部引いたものを指数関数で処理したもの
	分母は，分子の各行の和
	分子を分母で全部割ったものを返す
終わり

全結合層とは
	行列Xを持つ
	＋行列dW
	＋行列dB
	はじめ（W，B）の手順
		行列Wは，W
		行列Bは，B
	終わり
	自分が【X：行列】を順伝播させる手順
		行列Xは，X
		行列Xを行列Wに左からかけたものに行列Bを全部足したものを返す
	終わり
	自分が【入力：行列】を逆伝播させる手順
		行列dWは，行列Xを転置したものを入力に左からかけたもの
		行列dBは，入力の各列の和
		行列Wを転置したものに入力を左からかけたものを返す
	終わり
終わり

【推定：行列】と【正解：行列】で交差エントロピー誤差を求める手順
	（（（正解に（（推定に0.0001を全部足したもの）を対数関数で処理したもの）をかけたもの）を推定の大きさ（1）で全部割ったもの）の各列の和の各行の和）に-1を全部かけたものを返す
終わり


ソフトマックスに損失関数もくっつけたやつとは
	行列Tを持つ
	行列Yを持つ
	損失を持つ
	はじめの手順
	終わり
	自分が【X：行列】を【T:行列】で順伝播させる手順
		行列Tは，T
		行列Yは，Xをソフトマックスで処理したもの
		損失は，行列Yと行列Tで交差エントロピー誤差
		損失を返す
	終わり
	【自分】が逆伝播させる手順
		行列Yから行列Tを引いたものを行列Tの大きさ（1）で全部割ったものを返す
	終わり
終わり

一層とは
	＋パラメータ：配列
	層は，｛｝
	はじめ（入力の大きさ，出力の大きさ）の手順
		パラメータは，｛｝
		パラメータ（1）は，行列（入力の大きさ，出力の大きさ）を作ったもの
		パラメータ（1）をランダム化する
		パラメータ（2）は，行列（1，出力の大きさ）を作ったもの
		層（1）は，全結合層（パラメータ（1），パラメータ（2））を作ったもの
		層（2）は，ソフトマックスに損失関数もくっつけたやつを作ったもの
	終わり
	自分で【入力：行列】から推定する手順
		（層の個数 - 1）回，カウンタ1に１からカウントして繰り返す
			入力は，層（カウンタ1）が入力を順伝播させたもの
		繰り返し終わり
		入力を返す
	終わり
	自分を全表示する手順
		層（1）の行列dWを表示する
		層（1）の行列dBを表示する
	終わり
	自分で【正解：行列】が正解で【入力：行列】における損失を計算する手順
		推定結果は，自分で入力から推定したもの
		層（層の個数）が推定結果を正解で順伝播させたものを返す
	終わり
	自分で【正解：行列】が正解で【入力：行列】における勾配を計算する手順
		自分で正解が正解で入力における損失を計算する
		出力は，層（層の個数）が逆伝播させたもの
		（層の個数 - 1）回，カウンタ1に１からカウントして繰り返す
			出力は，層（層の個数 - カウンタ1）が出力を逆伝播させたもの
		繰り返し終わり
		勾配は，｛｝
		勾配（1）は，層（1）の行列dW
		勾配（2）は，層（1）の行列dB
		勾配を返す
	終わり
終わり

［文字列：文字列］を［区切り文字：文字列］で分割する手順：配列
	【配列】は，｛｝
	【現在位置】は，1
	【次の位置】
	繰り返す
		次の位置は，文字列の現在位置文字目から区切り文字を探したもの
		もし次の位置が0なら
			文字列の現在位置文字目以降を配列に加える
			繰り返しから抜ける
		でないなら
			文字列の現在位置文字目から次の位置-現在位置文字，取り出したものを配列に加える
			現在位置は，次の位置＋1
		もし終わり
		もし現在位置が文字列の文字数より大きいなら，
			繰り返しから抜ける
		もし終わり
	繰り返し終わり
	配列を返す
終わり

文字列分割器とは
	【分割対象：文字列】は，「」
	【前回位置：整数】は，0
	【今回位置：整数】は，1
	はじめ（対象）の手順
		分割対象は，対象
	終わり
	自分を【区切り文字：文字列】で分割する手順
		繰り返す
			もし今回位置が分割対象の文字数より大きいなら
				「」を返す
			もし終わり
			もし今回位置が分割対象の文字数なら
				今回位置は，今回位置＋1
				分割対象の［前回位置＋1］文字目以降を返す
			もし終わり
			もし分割対象の［今回位置］文字目が区切り文字なら
				【結果】は，分割対象の［前回位置＋1］文字目から［今回位置－前回位置－1］文字取り出したもの
				前回位置は，今回位置
				今回位置は，今回位置＋1
				結果を返す
			でないなら
				今回位置は，今回位置＋1
			もし終わり
		繰り返し終わり
	終わり
終わり




```

# 実行結果

```
0.9538714
0.9391441
0.92519020000000007
0.9119395
0.8993291
0.887304
0.8758153
0.8648196
0.8542782000000001
0.8441567
0.8344245
0.8250542
0.8160211
0.8073029
0.79888
0.7907339
0.78284850000000006
0.77520830000000007
0.7678003
0.7606117
0.753631
0.7468476
0.7402519
0.7338349
0.7275882
0.7215038
0.7155747
0.70979395
0.70415529
0.69865287
0.693281
0.68803441
0.68290805
0.67789736999999994
0.67299793999999991
0.66820546
0.66351625
0.65892608000000008
0.65443174
0.65002967999999994
0.64571651
0.6414894
0.63734537
0.63328131
0.62929487000000006
0.62538346
0.62154449999999994
0.61777544
0.61407459999999991
0.61043911
0.60686749
0.60335753
0.59990735
0.59651497
0.59317892
0.58989731
0.58666851
0.58349103
0.5803635
0.5772843
0.57425206000000006
0.57126544
0.5683232
0.56542416000000006
0.56256694
0.55975076
0.55697415000000006
0.5542361
0.55153573
0.54887184
0.54624355
0.54365022
0.5410904
0.53856372
0.53606919000000008
0.53360585
0.53117307
0.52877002000000006
0.52639613
0.52405057999999993
0.52173263
0.51944162
0.51717714
0.51493833
0.51272465999999994
0.51053564
0.50837061000000006
0.50622896
0.50411048
0.50201433999999989
0.49994018
0.49788750000000004
0.49585587000000003
0.49384484
0.49185378
0.48988276000000003
0.48793069
0.48599771
0.48408331
0.48218708
0.48030854999999995
0.47844758
0.47660350999999995
0.47477646
0.4729657
0.47117121
0.46939241
0.46762934999999994
0.46588142
0.46414855999999993
0.46243035
0.46072666
0.45903705
0.45736135999999994
0.45569946
0.45405108
0.45241579
0.4507936
0.44918431000000003
0.44758746
0.44600300000000004
0.44443084
0.44287052
0.44132205
0.43978511
0.43825970999999997
0.43674552
0.43524248
0.43375028
0.43226879
0.43079804
0.42933761000000004
0.42788746
0.42644747
0.42501743
0.42359729
0.42218683
0.42078594
0.41939463
0.41801249
0.41663961
0.41527586000000005
0.41392086
0.41257478999999997
0.41123745
0.40990874
0.40858859000000003
0.40727672000000004
0.40597326999999994
0.40467787
0.40339063
0.40211135
0.40084
0.39957643
0.39832054
0.39707236
0.39583164000000004
0.3945983
0.39337245
0.39215379
0.39094243
0.38973802
0.38854073
0.38735045
0.38616698
0.3849904
0.38382048
0.38265725
0.38150057
0.38035052
0.37920688
0.37806968
0.37693878
0.37581407
0.37469569
0.37358347999999997
0.37247733
0.37137718000000003
0.37028299000000003
0.36919477
0.36811229
0.36703566
0.36596483
0.36489967
0.3638402
0.36278629
0.36173787
0.36069488
0.35965755
0.35862549
0.35759872
0.35657729
0.35556113
0.35455017
0.35354452000000003
0.35254381
0.35154807
0.35055757
0.34957207
0.34859137
0.34761576
0.34664489
0.34567892
0.34471767
0.34376128
0.34280944999999996
0.34186242
0.34091994000000003
0.33998215
0.33904886
0.33812009
0.33719595
0.3362761
0.33536074
0.33444983
0.3335432
0.33264089
0.33174288
0.33084927
0.32995975
0.32907451
0.32819348
0.32731643
0.32644363
0.32557493000000004
0.32471009000000006
0.32384943
0.32299272
0.32213994999999995
0.32129114000000003
0.32044629
0.31960516
0.3187681
0.31793478999999997
0.31710523
0.31627961000000004
0.31545759
0.31463923
0.31382469
0.3130138
0.31220658
0.31140292999999997
0.3106029
0.30980649
0.30901356
0.3082242
0.30743835
0.30665594
0.30587704
0.30510159000000003
0.30432956
0.30356093
0.30279561
0.30203367000000003
0.30127501
0.30051972000000005
0.2997678
0.29901895
0.29827342
0.29753113
0.29679198
0.29605625
0.29532352
0.29459389
0.29386736999999996
0.29314402
0.2924238
0.29170662
0.29099247
0.29028131
0.28957332999999996
0.28886812
0.28816599
0.28746684
0.28677056
0.28607734
0.28538688
0.28469941
0.28401469
0.28333293000000004
0.28265401999999995
0.28197797
0.28130458999999997
0.28063412
0.27996626999999996
0.27930131
0.27863905
0.27797945
0.27732259
0.27666847
0.27601696
0.27536817999999996
0.27472203
0.27407849
0.27343751
0.27279922999999995
0.27216347
0.27153028
0.27089967000000004
0.27027159
0.26964607
0.26902298999999996
0.26840248
0.26778456
0.26716889
0.26655574000000004
0.26594518
0.26533686
0.264731
0.26412765
0.26352657
0.26292795
0.26233168
0.26173771
0.26114617
0.26055682
0.25996986
0.25938524
0.25880285
0.25822275
0.25764486
0.25706924000000003
0.25649595000000003
0.25592488999999996
0.25535585
0.25478911000000004
0.25422466
0.25366237
0.25310215
0.25254418
0.25198825999999996
0.25143452
0.25088285
0.25033342999999997
0.24978598000000002
0.24924061
0.24869738000000002
0.24815621999999998
0.24761706
0.24708008
0.2465449
0.24601192
0.2454809
0.24495188
0.24442488
0.24389977000000002
0.24337676000000003
0.24285563999999998
0.24233642
0.24181919000000002
0.24130399
0.24079067
0.24027914
0.23976961000000002
0.23926197
0.23875612
0.23825217999999998
0.2377501
0.23724995999999998
0.2367516
0.23625514999999997
0.23576035
0.23526756000000001
0.23477646
0.23428725
0.23379974
0.23331400000000002
0.23283001000000003
0.23234788
0.23186747000000002
0.23138878999999998
0.23091185
0.23043658
0.22996308000000001
0.22949131
0.22902113999999998
0.22855278
0.22808604999999998
0.22762110000000002
0.22715760000000002
0.22669598000000002
0.22623585000000002
0.22577745000000002
0.22532059
0.22486553
0.22441192999999998
0.22395997
0.22350966
0.22306099000000001
0.22261377
0.22216818
0.22172424999999998
0.22128177
0.22084091
0.22040157
0.2199638
0.21952759
0.2190928
0.21865961
0.21822795
0.21779772
0.21736904
0.21694185
0.21651609
0.21609188000000001
0.21566907000000002
0.2152478
0.21482793
0.21440952
0.2139926
0.21357705000000002
0.21316297
0.21275023999999998
0.21233898
0.2119291
0.21152068000000002
0.21111361
0.21070793
0.21030362
0.2099007
0.20949915
0.20909898
0.20870012
0.20830266
0.20790652
0.20751167
0.20711818999999998
0.20672608
0.20633522999999998
0.20594563999999999
0.20555745999999997
0.20517058
0.20478495
0.20440055000000001
0.20401754
0.20363572000000002
0.20325527000000002
0.20287601
0.20249804
0.20212122999999999
0.20174577
0.2013715
0.20099853
0.20062674
0.2002562
0.19988685
0.19951877
0.19915181999999998
0.19878605
0.19842163
0.19805823
0.19769607
0.19733521
0.19697541000000002
0.19661677
0.19625932000000001
0.19590303
0.19554788
0.19519392
0.19484106
0.19448942000000002
0.1941388
0.19378935
0.19344105
0.19309384
0.19274776
0.19240279
0.19205887
0.19171615
0.19137448
0.19103383000000002
0.19069438
0.19035592
0.19001858
0.18968232000000002
0.1893471
0.18901290999999998
0.18867984
0.18834781
0.18801684000000002
0.18768689
0.18735792
0.18703005
0.18670316
0.18637737999999998
0.18605252
0.18572873
0.18540597999999997
0.18508422
0.18476343
0.18444364000000002
0.18412485
0.18380713999999998
0.18349031
0.18317444
0.18285962
0.18254572
0.18223278
0.1819209
0.18160988
XORを学習した
０，０　は
　　　　　０
１，０　は
　　　　　１
０，１　は
　　　　　１
１，１　は
　　　　　０

```

以上。