人工知能ディープラーニング機械学習のための数学 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
縦か横かは関係ないというか自分がどう見るかで変わる
それより大事なのは右から掛けるか左から掛けるか
shapeで自信がないひとは
適当な正方行列を掛けてみれば良い >>700
君が期待してるのはこっちだろ
>>> np.array([[1, 2, 3]])
array([[1, 2, 3]])
>>> np.array([[1, 2, 3]]).T
array([[1],
[2],
[3]]) お前らもうディープラーニングの気持ちわかるの?
こういうことしたいなーって思ったらホイホイとネットワーク組んでおし動いたってなるの? >>703
ああそういうことか、ありがとう。
Conv層の入力画像が3チャンネルの場合、
フィルタ行列は3チャンネル別々のものが生成されるの?
それとも同じフィルタ行列を3チャンネルにブロードキャスト
するの? >>705
別々に生成される。
フィルタの結果は加算されて1チャンネルの画像になる。 ニューラルネットの質問なんですがバイアスを入力1、重みbとして扱う時に
X=[x1,...,xn,1]
W=[[w11,...,w1k],...[wn1,...,wnk],
[b1,...,bk]]
Y=XW=(1,n+1)
になりますよね
隠れ層がある場合は重みWの最後の列を出力1になるようにしないといけないと思うのですが
W=[[w11,...,w1k,0],...[wn1,...,wnk,0],
[b1,...,bk,1]]
こうしてもいいのでしょうか KerasのEmbeddingレイヤーについて教えてほしいんだけどさ
https://keras.io/ja/layers/embeddings/
>正の整数(インデックス)を固定次元の密ベクトルに変換します
の説明で、どういう計算をしたら
> 例)[[4], [20]] -> [[0.25, 0.1], [0.6, -0.2]]
になるん? いやしかし機械学習という神風でPythonがRubyを吹き飛ばしたよね
特にこれから始めようとする人で、Ruby選ぶ人って激減なんじゃないかと >>715
pythonは遅いのでJuliaに変わって欲しい。 >>718
pythonは遅いからc++にしてくれ。 フロント言語なんかお気楽さが命なんだから、CとかC++とかはありえねー。 ディープラーニングで関数の先の予測はできますか?
例えばsin関数を学習する例で言えば
学習データとしてsin0~360の範囲で一度ずつ学習させますつまり、0という入力に対し0を返し,90に対し1を返すように学習させます。学習後入力データとして0~360の範囲外のデータを入力した場合どのような値が帰ってきますか? 学習してラジアン入力の方が使いやすいとか指示してくれるAIの方がうれしい 教師データの分布から外れた値を推定できないのは当然のこと ストライドを1にしたら、微小な位置に対する位置の頑健性が低くなりますよね? それと、結局>722の答えとしてはどうなりますか? プログラマーのなかには、解をひとつ見つけると、別の解の模索をしないまま、自分の知ってる1つの解だけが唯一の解だと断定したがる、頭のわるい人がいます。どうも彼らは、高校数学の知識が、まったく思考力に結びついてないらしいです。
そして、このような論理的思考力のひくい頭のわるいプログラマーにかぎって、「プログラマーには数学が重要だ! 数学教育は論理性を養う!」とか言ってたりしますので、とことん呆れます。 関係ないよ、数学は数学、といってもたいした数学をやっていないんだろうけど(笑) 狭い世界しか知らないのに微積分程度の知識で偉そうな顔をする、理解不能w courseraでMLの授業取ってるんだけど、
θ'X のoctave実装が、X * θ になってるんだけど、
どうして逆になってるの?'は転置です。
そのままθ' * X だとサイズエラーになります。 サイズを調べると、θ は 2 * 1 X は 97 * 2 でした。
Xはテストデータの行列のようです。
ちなみに最急降下法の実装です。
θ' * Xがエラーになるのは、分かるのですが、モデルではθ'Xでと書いてあって、混乱しています m×n行列とn×p行列の積がm×pになるくらい基礎中の基礎だろ 数学で良く使われる線形代数とMLのそれは違うからな >>744
それ線形代数になれてないと、本当に最初混乱するけど
冷静にサイズチェックして行列の掛け算が実行可能なやり方にすればできる
一般化して簡単化してる講義ではnx1行列のθとXを想定してるから
スライドでもθ[θ1;θ2;θ3;....θi]、X[x1;x2;x3;....xi]って列ベクトル(orたまに行ベクトル)で表記してる
その場合、θ' has size 1 x n、X has size n x 1になって
θ' * Xで左からかける行列の列数と右の行数が一致してるから計算できる
要はθとXで内積取ればいいって考えれば,X has size m x 1、θ has size 1 x 1に
インターセプト項を加えて、Xがm x n行列、θがn x 1行列になった時
これらの行列の内積を取るには、(θ' * X') or X * θを計算すれば良いと分かるっていう
講義中の線形代数のチュートリアルでやってる簡単な話になる てか俺もまだMLやってる途中なんだけど
同じ教授のディープラーニングコースの方をやり終えた人いる?
いたらどの程度日本語字幕付いてるか教えてほしい
1週間の無料期間だとちょっとしか見れないだろうから
日本語字幕ありとなしじゃ倍以上理解に時間かかるわ… 行列の内積や積の意味さっぱりわからずに単に数字の操作としてしかやってないからそんなつまんないところで躓くんだろうな
やっぱ線形代数の入門書ぐらいは読んどいた方がいい ■クソマウンティング警戒情報■
クラス1 大学の授業で線形代数をやっただけのおっさん
クラス2 大学には行かなかったが線形代数を独習したおっさん
このあたりが出没してるので気をつけましょう。 線形代数知らないと大損だよ!
人工知能
ディープラーニング
機械学習
だけじゃないよ!
プログラミングでかなり重要 行列学ぶにはには画像処理がいいって、
それ一番言われてるから。
データサイエンスから派生してOPenCV
始めたけどかなり楽しいゾ。
数式見るだけより画像がどう変化するかを
確認するとアルゴリズムの意味や目的が
はっきりわかんだね。 ライブラリを使うには数学知識が必須
なんだよなぁ…
例えばnumpyを使うのに行列知識ゼロじゃ
使いこなせない。
逆にnumpyを使っているうちに行列への
理解が深まるってこともあるし。 回答がつくか自信がないですがいくつか質問です
@ 右上の▽E(w)の定義を教えてください
A なんで式の3行目のβにはtがくっついているのですか
https://i.imgur.com/cqdg8pC.jpg >>569
もちろんある程度大学の数学をやった上で言ってるんだと思うんだけど
ある程度やった上での発言だとしたら頭が悪いわ >>766
>@ 右上の▽E(w)の定義を教えてください
損失関数Eの勾配
=δE/δw
>A なんで式の3行目のβにはtがくっついているのですか
学習の経過に従って、mとvの寄与度を調整して学習を安定させる Aの補足
学習の初期段階でtが小さい時にmとvを調整して学習を安定させる効果がある。
この式の分母はtが大きくなるとほぼ1になりほとんど変化しなくなる。 >>766です
ありがとうございます、解決しました
tが0から始まるとすればbeta^0でそっから1引いたものが分母になるから分母0にならないですか? 誤差逆伝播法では誤差が下層から上層に伝えられていく。誤差が具体的に何かと聞かれても、正解値と推定値の差を順次上層に向かって伝えられていく値としか答えようがない。 >>777
例えば畳み込み層の前がプーリング層だった場合具体的に何が誤差になりますか? 例えばMAXプーリング層では、下層から伝えられた誤差(偏微分値)を、順伝播時のMAXだったノードに伝えられる。MAX以外のノードには0が伝えられる。このようにそのノードの性質によって何が伝えられるかは変わってくる。 >>780
そのプーリング 層の前が全結合層だった場合その層での誤差は何になるのでしょう?全結合層での入力層と隠れ層の間の重みとかですか? 東京大学理学部数学科に入って、数論幾何学を勉強したい。
でも脇見恐怖症だしなぁ・・・・・。 >>781
全結合部の出力層で誤差関数で誤差を求めて後は入力側に向かってその誤差を各ニューロン毎に重み掛け算して分配していく。
分配が終わったら誤差、学習率等を使って各重みを更新。間違ってたら指摘お願いします >>783
「重み掛け算」というのが違う。どのように分配していくかは、順伝播時ノードの処理によって変化する。足し算ノードなら何もかけずに逆伝播させるし、掛け算ノードであれば逆ノードの値を掛けて逆伝播させるし。 上記についてはこのページが詳しいかな
ttps://qiita.com/t-tkd3a/items/031c0a4dbf25fd2866a3 リアルプログラムでは学習した結果ってどうやって永続化してるの?
ファイルに書き出すの? 基本的には各サンプルを通して損失関数を最小化するθ(重み)が学習成果なわけだから
そのθをファイルに保存する
途中からの場合θのファイルをロードする
モデルによって他にドロップアウトやRegularization値など自動で最適化してるハイパーパラメータがあればそれもファイルに保存する 全部チューニングの問題。その設定で精度のが上がれば、そのタスクにとっては「正しい」設定となる。 色々深層学習のライブラリ弄ってて、モデルそのものを弄りたくなってきて調べたけど
既存の深層学習のライブラリ全部、iter中に計算速度稼ぐことメインに考えてて
気軽に独自モデル試せるようなもんじゃないんだな
ライブラリ使って新しいモデル作ってる研究者は低レベルで殴り合ってるわけだ
ソース見てもモジュール化されすぎてて全部理解するのには相当時間かかる
独自にモデル作ってる人らには頭が下がるわ
フルスクラッチでやったほうが実装そのものは相当楽だろ
でも今どきフルスクラッチでDNNの新モデル作ったところで研究者には見向きもされないんだろうな ■ このスレッドは過去ログ倉庫に格納されています