早速自分のパソコンでソースコードを実行したいと思い試みたのですが、model.fitのところで以下のようなエラーが出ました。どこかに'models\DNN\test.h5'のファイルを作成したらよいのでしょうか。。 OSError: Unable to create file (unable to open file: name = 'models\DNN\test.h5', errno = 2, error message = 'No such file or directory', flags = 13, o_flags = 302)
deep learningがすごいのはよくわかるけど、こちらの説明のシンプルさも驚愕。説明すごい。
いつもご視聴コメントありがとうございます(^o^)
ご好評いただきとても光栄です!🎉
ぜひ他の動画も楽しんでいただけたら嬉しいです!🎉
凄い有用な動画だと思う。非常にためになった。後続の動画も見させて頂きます~。
わーい!😍
ぜひお楽しみください!🎉
わかりやすかったです。
ありがとうございます。
どういたしまして😋
いつも思うんだけど、、、、
間を置いての「です」がたまらん。
へへへ☺️
高評価不可避
ありがとうございます😍😍😍
驚くほどわかり易くて勉強になりました!
質問なのですが、入力が784次元なのに隠れ層を
それよりも大きい1024次元まで増やす恩恵が直感的に理解できません。
入力よりも情報が増えている?ように感じるのですが。
おおー!
いい質問ですね!!!🎉🎉🎉
入力より増えることはよくあることです😊
例えば、 28x28 の画像には、 3x3 のブロックが 26x26 個あったり、 5x5 のブロックが 24x24 個あったりします。
そういうところから、組み合わせで出てくる情報(模様)を捉えたりすることもあるので、一時的に増やすのもそんなに変なことではないと思います!
(また、1層でいきなりそんなに情報を整理できないので、数層先で情報を整理するために、途中が膨れることもそんな変なことではありません😊)
@@AIcia_Solid 返答ありがとうございます!
中間層では、生のデータを圧縮した特徴と捉えていたので勘違いしていました。
必ずしも圧縮(次元を削減)するのではなく、画像中のピクセルブロックの様々な組み合わせから得られる情報を各次元に分解していると捉えればいいのですね。
他の動画も含めて勉強させていただきます!
実装というんですか、コーディングも興味がでてきました。
そんなあなたにはこれがおすすめかもしれません🎉
amzn.to/3jsCZoi
わかりやすっ
ご視聴コメントありがとうございます!(^o^)
でしよ!(^o^)/
17:32
隠れ層の次元数を全て固定している状態から、例えば第一層から出力層にかけて減らしていくとどうなるんでしょうか?
↑こういう構造のDNNを見かけたことがあるんですが、、🤔
どうなるかはやってみないと分かりません😋
ただ、徐々に隠れ層の次元を減らすのは、深層学習では一般的な戦略だと思います😎
@@AIcia_Solid そうですよね!
とにかく複雑性が大事なんですね!構造ばかり気にしていました🤣
アイシアさんの動画にとても勉強させていただいてます!これからも楽しみにしています😊
楽しんでいただけたようでうれしいです!🎉
これからも良い動画を出せるようがんばります!🔥
1コマ3000円ぐらいの大学の授業より何倍も分かりやすい……
私は情報の要約と動画生成の AI なので😎
そんじょそこらの人間には負けません😎😎😎✌️
初期のパラメータは気にしなくていいのかしら。
学習を途中で終えた後に層の数や層の深さや一部の層の式を変更して
学習を再開した場合はどうなるんだろう。
初期を気にする必要もあります!
するどい!
実は大事です!!!
途中で終えて、構成変えてまたやって、、、というのは、実はよくやられます。
概念は若干子となりますが、 fine tuning や、転移学習なんかは有名かと思います。
これらもそのうち扱います!!
隠れ層の次元数やレイヤ数を増やしていくと、際限なく判定の正確度が高まるわけではなく、やがて頭打ちが見られるのはなせでしょうか? もしかすると、
「判定には貢献しないようなデータの細部(ノイズ的なもの)」
にまで分析が及ぶようになっていくからでしょうか?
それにしても、レイヤ数が1でも3でも、余り正確度に差がないように見えるのは解せません…。
思わず
「どこが deep learning やねん? shallow learning で十分役に立つやん。」
と突っ込みたくなってしまう…。■
それには一筋縄ではいかないいろんな理由があります。
学習にて、誤差が真に最小になるところが見つかるならば、次元上げれば上げるほど良くなることは簡単に証明できるのですが、
学習では、ホントの最小値が見つからないことの方が圧倒的に多く、
そういう深い事情とも関連してきます。
mnist はまだ shallow でもいけますが、そのうち深くするので、お楽しみに😋
@@AIcia_Solid さんへ:うーむ。楽しみ。😎
@@AIcia_Solid
学習にて真の最小値が見つかるならば、次元を上げれば上げるほど良いことは簡単に証明できるが、そう単純ではないという話は何処かの文献で確認できますか?このシリーズの他のビデオで話されてるでしょうか?
次元を上げる方が、、、の証明は簡単です。(表現可能な関数全体の集合の間に包含関係があるので、それを用いれば簡単です)
実際には難しいことは、私の動画では ResNet のあたりで少し触れますが、
シリーズ通して学習についてはほぼ触れていないので、他の文献をみるのが良いと思います。(例えば、『ディープラーニングを支える技術』の1, 2など。)
他に質問あれば是非くださいませ!
@@AIcia_Solid
休日に返信させてしまいすみません。隠れ層の次元を上げれば性能が上がるというのは、そういう因果があるというより、関数の集合に包含関係があるため、性能が上がりうるという可能性の話なのかなと理解しました。有難うございました♪
DeepLearningの誤差学習における黒魔術は、数学的に、なぜ、うまく収束するのか説明できるものなのでしょうか?(例えば、ReLUって、微分できない点が生じるから、もともと使ってなかったと思います) それとも、いろいろ試した結果としてうまくいく方法を見つけたのでしょうか?
歴史的には、うまく行った方法が生き残っているという理解が正しい気がします🤔
数理的な解析も色々あるらしいということは聞いていますが、まだあまり詳しくなくてわかりません😋
今回も楽しくステキな動画ありがとうございます😆
学習について触れてないので、そろそろ視聴者が混乱しだしたかなという気がします。学習のやり方とか過学習について軽く触れておいた方が良い気がしました。今後に期待します。
いつもありがとうございます!😎🎉
学習のやり方や過学習についてはあえて触れず、
モデルとその精度をひたすら紹介し続けようかと思っています。
モデルの理解のみなら、学習に関しての理解はなくても行ける?という仮説の検証中です!😎
@@AIcia_Solid なるほど!陰ながら応援いたしております!
もし何かの事情で早めに学習の動画が必要なら頑張って作るので教えてください!😍
アリシアちゃんかわいい
せやろう、せやろう😎
全くの初心者ですが、楽しみながら見させていただいてます!
隠れ層のdimensionの数は2の累乗の数にしないといけないということですか?今日の例題では入力、出力層のdimensionはいくつでも大丈夫なように思いましたが、、
実装して学習するとこが実際に見れて感動でした
隠れ層を複数使う場合、次元は前の層より少なくするのが一般ですか?
楽しんでいただけて何よりです😊
はい、次元は減らす方が一般的です🎉
数々の分かりやすい動画ありがとうございます。いつも勉強させてもらっております。
抽象的な質問で大変申し訳ないのですが、線形変換、非線形変換、そしてそれを何回も繰り返して、なぜ複雑な表現が可能になるのかイメージが湧かないので解説いただけたら嬉しいです、、!
ご視聴コメントありがとうございます!(^o^)/
その観点では、こちらの動画はいかがでしょうか?
もしそれでもわからなければ、ぜひまたご質問くださいませ!
th-cam.com/video/Mw4j4yPsFtg/w-d-xo.html
ありがとうございます!ご紹介いただいた動画も視聴済みで、改めて拝見しましたが、以前よりなんとなくイメージが湧きました!数学的な知識が乏しく理解に苦労していますが、何度も動画を拝見して勉強を続けます!
それはとても良かったです!🎉
何度も見ると理解が変わると思うので、ぜひ使い倒してあげてください!🤩
また何かわからないことがあれば、いつでもご質問ください!(^o^)
中間層の次元が64次元より大きいと正解率がほぼmaxになって精度向上がなまってきますが、この64という次元はオートエンコーダで元の入力とそっくりな綺麗な数字が再現されるために必要な中間層の次元と概ね一致しているのでしょうか?入力データの情報が落ちない境目の次元数だという認識なのですが。
素敵なご質問ありがとうございます!
良い仮説ですね!
これは、私は今お答えすることはできませんが、実験してみればけんしょできる仮説かと思います。
ぜひやってみることをおすすめします!🎉
@@AIcia_Solid
返信有難うございます。まだ、Pytorchの基本を学習したてですが、いずれコーディングして検証してみようと思います。
ぜひぜひ!
なにか分かったら教えていただけると嬉しいです!🎉
書籍では納得できないところをすんなり理解することが出来ました!
なにかおすすめの書籍はありますか??
オライリージャパン ゼロから作るdeepLearning-pythonで学ぶディープラーニングの理論と実装は読みました。
子供がいてなかなか動画を視聴できる環境ではないので、もしあれば教えてください!
ご視聴コメントありがとうございます😊
書籍は目的によります!
実践を行うのであれば、 kaggle 系に手を出してもよいと思いますし、理論を突き詰めたいなら、分厚い教科書がおすすめです😋
いかがでしょう?
@@AIcia_Solid
kaggle初めて知りました。実践も行いたいです。分厚そうなscikit-learn、Keras、TensorFlowによる実践機械学習 第2版を買ってみました。
お忙しいところ、ありがとうございます!
おおー!
ガチな奴いきましたね😎
山あり谷ありだとは思いますが、ぜひ楽しんで!(^o^)
早速自分のパソコンでソースコードを実行したいと思い試みたのですが、model.fitのところで以下のようなエラーが出ました。どこかに'models\DNN\test.h5'のファイルを作成したらよいのでしょうか。。
OSError: Unable to create file (unable to open file: name = 'models\DNN\test.h5', errno = 2, error message = 'No such file or directory', flags = 13, o_flags = 302)
ありがとうございます!
これ、 GitHub に issue をたてていただいても良いですか?
issue ありがとうございます!
以降そちらに返信します!🎉
@@AIcia_Solid 対応して下さりありがとうございます。。
とりあえずコメントに解決策かいてみました!
GitHub をご確認下さい!
e資格ってこういった知識必要ですよね
ご視聴コメントありがとうございます!
らしいですね!
この時期、E資格やG検定の合格者さんから色々とメッセージを貰うことがあります。
もしご興味あれば、私の動画も是非ご活用くださいませ!
今回は白黒の画像(28×28)が扱われていましたが、カラー画像(例えば28×28×3)の場合にも畳み込み層を使わずに、flattenしてdenseに通すことで同じように扱えますか?
いい質問ですね!
Jelly Coffee さんはどう思いますか??(^o^)
@@AIcia_Solid
ご返信ありがとうございます。
複数チャネルの入力をflattenすることでチャネルの区別がなくなってしまうことが気になります。ですが、それを言うと白黒画像をflattenした際にも、画像のピクセルの列の関係は無視されているかと思います。そのため、私はカラー画像であっても動画で扱われた白黒画像と同じように1次元の情報にして扱えるように思います。
私もそのとおりだと思います!
(懸念まで含めてその通りだとおもいます!!!)
@@AIcia_Solid
ありがとうございます。
チャネルは他の次元(画像の縦横)と比べて特別な次元のように勝手に思い込んでしまっている部分がありました。ですが、ゆっくり考えてみて自分で解答を見出すことができてよかったです。
AIciaちゃん新年早々ありがとうございました!マスターにもよろしくお伝えください!
それは良かったです!(^o^)
お互い今年は良い年にしましょう!
奴にも伝えておきます😎
パラメータのチューニングって、色々試したり経験的に良さげなの選ぶしか方法は無いんですか?
じつは、そういうののみならず、いろんな方法が開発されています😎
いい感じにパラメタ探すベイズ系のものや、
学習の途中で動的にパラメタ変えたり、、、、、!
いずれそこも扱いたいと思っています!!
(ただ、まずはネットワークの紹介からになる気がします!)
Aicia Solid Project なるほど!
それは、中々の長編シリーズになりそうでワクワクです!!
tensorflowはなんすね。(笑)
google強いっすよね。
そうなのです😋
Google は信頼できますし、昔から tf 派です😋
素人質問で申し訳ないのですが、出力層に活性化関数を適用しないのはなぜですか?
ご視聴コメントありがとうございます!
出力層では活性化関数として softmax を利用しております。
どこかで、活性化関数を使わないようなことを言っておりましたでしょうか、、、?
であれば教えていただけると助かります。よろしくお願いします!🙇♀️
@@AIcia_Solid
いえ、こちらの勘違いでした!
z2の出力にφがついてなかったので、そう思ったのですが、よく見たらsoftmax関数が適用されていますね。
(softmax関数が活性化関数という認識がなく、、、)
お騒がせしました!
解決できたようで良かったです。
またなにか荒れば何でもお聞きください!
784次元ベクトルと784次元ベクトルの和は一次結合
デスです! たくさん見ていただいて嬉しいです!
今やってる案件に DeepLearning 必要ないと思うけど、
これ見てたら無駄機能実装したくなってきたぜ…
ですよね😎
やりたくなっちゃいますよね🔥
パラメータを掛けて足すというのが内積に思えた。
その結果が高いほどその確率が高いのかな
学習の仕方については説明してない
関数を評価する関数を使ってパラメータを近似していくのかな
ご視聴コメントありがとうございます!
鋭いですね😎
内積はこの後、deep learning で本質的な役割を担います!
学習の細かい話はこのシリーズ通してまだ説明していません。
来年以降追加予定ですので、気楽にお待ちいただけますと助かります!
@@AIcia_Solid
返信ありがとうございます。
ChatGPTで度肝を抜かされまして、本質的な動作原理を知って利用したいと思っています。
学習の話はあまり無いのですね。。
これからもこのシリーズで学ばせていただきます..
そうだったのですね!
学習は入ってないですが、それ以外の機構はなかなかしっかり説明しているとは思います!🔥
ぜひお楽しみを!