注意すべき点は、与える配列の数に制限があるのに対して形には制限が無いことです。言い換えると、与える配列の次元は何でも構いません。元にして3次元配列が生成されます。ドキュメント見るのもいいんじゃないかなって思います。細かい話があるのですが、これ以上書くと更に本題から外れていくので割愛します。損失関数を使うのか?何の話してましたっけ?ああ、損失関数が今回のテーマでした。えらく寄り道してしまいました。性能の悪さを示す損失関数を使います。「そもそも性能の良し悪しなら精度を使えばよいのではないか?」という疑問が沸く人も居るはず。それでは学習がうまくできないという話。方は回帰問題ならそのまま精度みたいなものだと思うので、おそらく著者が言いたいのは多クラス分類問題(例題の手書き文字認識とか)の精度は使うべきではないって話みたいです。手書き文字認識の場合、100枚中何枚正しく認識できたかを精度にすると、その精度は不連続な値になります。テストデータが100枚なら、精度50%の次に良い精度は51%であり、精度50.5%はあり得ません。(1000枚の場合は50.5%があり得ますが、その場合は50.0%と50.1%の間に50.05%があり得ない)。以下はイメージ図です。実は性能(performance)が少しずつ上がっていても、切りのいい数字にならないと精度(precision)には反映されないという感じ。最適な重みを学習させる際には、重みを少しずつ変化させて一番性能が良くなるところを探します。その指標が不連続だと、重みを少し変化させても指標が変化しないので学習仕様がない。これが不連続な値(例:100中何枚正しく認識したか)を指標に使えない理由だそうです。交差エントロピー誤差は連続関数なのでOKってわけです。今回は損失関数紹介するだけだったので正直書くモチベーションが低く、いつのまにか書きかけで二週間も放置してました。同時並行で勉強してる深層学習(機械学習プロフェッショナルシリーズ)の方が誤差逆伝播法まで来ちゃったので、そろそろ実装も進めないとやばいということで復帰しました。次回は偏微分によって損失関数を最小化する勾配法と、それを計算機上で実現する数値微分の話です。実装も含んでるしまあ楽しい回になるのではないでしょうか。個人的な都合で今週中に誤差逆伝播に行きたいのでさらっと流すかもしれません。構ってる場合かって話ですけどね。07:38に追記)今回は本編のほとんどがおまけみたいなものだったのでおまけ書かないつもりでしたが、やっぱりもうちょい書きたいので更に詳しく書くことにしました。要素を取り出す配列の次元数だけ配列を指定できます。4]]なら二個まで指定可能で、その形状は自由です。(2L,)以下のように異なる形状の配列でもOKです。配列の形を後ろから見ていって、勝手によしなにしてくれます。(詳しくは前回のbroadcastの節を参照。1]]ちゃんと同じ結果になってますね。配列を複数食わせるのが一般的な形だ」みたいなことを言いました。