人工知能ディープラーニング機械学習のための数学 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
線形代数知らないと大損だよ!
人工知能
ディープラーニング
機械学習
だけじゃないよ!
プログラミングでかなり重要 行列学ぶにはには画像処理がいいって、
それ一番言われてるから。
データサイエンスから派生して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の新モデル作ったところで研究者には見向きもされないんだろうな 既存の数学的アプローチでは汎用人工知能は無理。
新しい数学を創造する必要がある。 人間の脳の学習能率に対して、ディープラーニングでは人間ではあり得ない量のデータを力技で教え込んでいるという現状を考えれば既存理論では実現不可能なのは明白だな
根本的にやってることが違う 数学は万物を定量化して表すもの
数学に出来ないのはヒルベルトのように、解く方法が解らない問題と
世界の誰も未だに気づいていない問題 そのうち人工知能の性能や危険性を監査する方法が必要になる
監査もAIにして相互に進化させる
人間のはるか上を行くAIになりそう >>806
>監査もAIにして相互に進化させる
こういう自己学習はすべてのAIにて有効とは限らない、と思いますが NNのパラメータが十分多ければSGDでも多項式時間で最適解に収束する事が証明されたな
https://arxiv.org/abs/1811.03962 ε-δ論法での「十分小さければ」みたいによくある表現だよね t分布で自由度が十分大きければ正規分布になるとか、割とあちこちで十分大きければ論法は使われる
「十分大きい」というのが現実的なサイズなら何の問題もないし非現実的なサイズなら机上の空論というだけのこと 誤差曲面には極小値や鞍点が無数にあるにも関わらず、SGDで最適解に辿り着けてしまうのは自明では無い
経験的に知られていたが謎だった事が理論的に解明された事に価値がある
あと(指数ではなく)多項式時間と分かった事も大きいと思う 初歩的なもので申し訳ありませんが
ゼロから作るDeep Learningの中の数式の変形で以下のような変形がありました。
どう変形したらこうなるのはわからないのですがどなたか教えていただけないでしょうか?
c exp(x) = exp(x + log c) 定義から追っていけばわかるだろ?
expてのはeを何回掛けたか
logはその逆
exp(log c) = cはcが特殊な値でない限り常になりたつ。
exp(a)exp(b)はeをa回掛けたものにさらにeをb回掛けることになる
これはexp(a+b)に等しい >>817
ありがとうございます。
言われてみればなんで気づかなかったんだろってレベルでした。 ln 左辺
= ln (c * e^x)
= ln c + ln e^x
= ln c + x
ln 右辺
= ln e^(x + ln c)
= x + ln c
高校の算数で分かる >>816
c = exp(log (c))
まずこれを理解して
c・exp(x) = exp(x)・exp(log(c))
= exp(x + log(c)) >>816
exp(x + log c)=exp(x)*exp(logc) 指数法則:exp(x+y)=exp(x)exp(y)
=exp(x)*c expとlogは互いに逆関数なので順番に作用させると元に戻る:x=exp(logx) c exp(x) = exp(x + log(c))
log(c exp(x)) = log(exp(x + log(c)))
log(c) + log(exp(x)) = log(exp(x + log(c)))
log(c) + x = x + log(c) ゼロから作るDeep Learningの中のAffineレイヤの部分で
行列の積
X・W
をXで微分したものが
Wの転置行列
になっており、
X・W
をWで微分したものが
Xの転置になっていますがこの辺の説明がないためなぜそうなるのかわかりませんでした。
この辺は数学のどの部分をやれば理解できますでしょうか?いい参考書があれば教えてほしいです。
後同じAffineレイヤのバッチ対応版で、バイアス部分がすべてのバッチ分の加算になっていますが
これってどう解釈すればいいのでしょうか?
いまいちなぜすべてを加算するのか理解できませんでした。 >>823
行列 (i,j) 成分が
\sum_k( x_{i,k}*w_{k,j} )
になってる事から一つ一つ計算しな。 DeepLearningを試しにやってみたいけど
Chainerあたりが手軽なの?
ちなみに文系の馬鹿です。
回帰分析とSVMを
Pythonで試したことあります。 そんだけやってればこのスレのほとんどの人より先に行ってるぞ >>837
マジレスするとクラウドのがコスパいい
睡眠も妨げない >>839
無料がいいならGoogle Colaboratory行っとけ
速度はイマイチだがCPUだけよりはかなりマシ >>843
用途による
一般用途はAmazon、サクラ、google、Azure等
あとはサービス連携
ワトソンとか使いたいならIBM Bluemix
TPUで爆速機械学習とかならGoogle Cloud Platform
個人的な意見で申し訳ないが
使いやすいのはamazon aws
価格が安いのはGoogle、IBM
サクラは官公庁とかで従量課金NGとかでも相談に乗ってくれる >>844
ありがとうございます。
取引先は機械学習するのにAzuzeにしたのですが
利用料金が予想以上に高いと言ってました。
いろいろ検討してみます。 値段はAwsでもそう変わらんちゃう
Googleはちょい安そう 本業の問題解決にディープラーニングを利用するかディープラーニング自体を本業とするかでクラウド使うべきかは変わる
GPUぶん回すのは学習時ぐらいなので前者なら実際は学習以外の仕事が大半を占めるのでクラウドの方が安く、後者なら学習させまくるのだろうからハード買った方が安い >>847
何気に無視できないのはデータ量
訓練データや最終出力に大量のデータを保存する必要があるときはクラウドが高くつく
GPUのランニングコストはさほどでもない さくらの高火力コンピューティングとかめちゃ高いよな。
あれ誰が使うんだろ? >>845
利用料金、これからの課題やで
機械学習はこれからビジネスの世界になる
機械学習で精度はあがっても、その精度を出すためのコストが問題されるようになる
大半の用途ではコストがかさんで機械学習をする意味がない
(コストにはデータを集めるためのコストも含含まれる)
もう少ししたら、これが問題視されるようになる >>850
1TBのディスクはAmazon EBSの場合、帯域幅にもよるけど月当たり数千円から数万円。どのくらいを大容量というかは学習とのバランスによる。
GPUはEC2 P3でV100を使って一番安いオプションで24時間使い続けたとして月額25万くらい。実際にはこの1/3くらいだから月8万円としよう。
そうするとランニングコストのうち10%前後はストレージの容量に払うことになる。これを計算機コストに置き換えるとクラウドのストレージが如何に高いか分かる。
V100搭載の計算機は200万円くらい、かつ24時間回しっ放しだと電気代が月々数万円かかる。かりに1/3だとしても1〜2万円くらいだろうか。
※このクラスだと納期に最低2週間、必要なら電源工事、さらには固定資産税が掛かるが今は置いておこう。
大雑把な計算だと、GPU計算機の購入費用はクラウド換算では2.5年間くらいに相当する。2.5年もすると計算機の大幅な性能向上も見込まれるので、クラウドの有用性が分かるだろう。
一方1TBのSSDが2万円切る中、同じ容量のストレージをクラウド上で保持しようと思うと、1〜3ヶ月程度しか持たない。もちろんサービス用の高いストレージを使うのもありだが学習用途なのであまり意味がない。 >>852
コストは掛かるのはわかるが、それによって
なにが得られるかだよな
コストを掛けた以上の利益が得られなければやる意味がない
まあ今はまだ検証段階でそこまで考えられる所まで来てないんだろうけど
いいよな。結果が出なくても良い段階っていうのはw >>852
ストレージは利用者に提供した分は必ず確保して使えるようにするから占有だけど
GPUは隙間時間を別の人が使ったりできる点は違うんじゃね ■ このスレッドは過去ログ倉庫に格納されています