初心者データサイエンティストの備忘録

調べたことは全部ここに書いて自分の辞書を作る

2024-01-01から1年間の記事一覧

【深層学習】パラメータの初期化手法をどのように選択すべきか?活性化関数に応じて決める

はじめに 一般的に機械学習モデルを構築する際には、教師データからモデルが分類ルールを獲得する必要があります。この分類ルールを獲得することは「学習」と呼ばれ、機械学習モデルに含まれるパラメータを調整して損失関数を減少させることで実現します。つ…

【深層学習】最適化手法Adamとは何か?勾配降下法からAdamまでの発展

深層学習 改訂第2版 (機械学習プロフェッショナルシリーズ)作者:岡谷貴之講談社Amazon はじめに 深層学習では、損失関数の値を小さくするパラメータを見つけることが必要です。このプロセスは「最適化」と呼ばれます。 深層学習における最適化の手法にはさ…

【深層学習】RNN・LSTM・UGRNN・GRUの関係性:勾配消失問題の解決とパラメータの削減

深層学習 改訂第2版 (機械学習プロフェッショナルシリーズ)作者:岡谷貴之講談社Amazon はじめに 深層学習を読んでいます。本記事では、本書のChapter 6 に記載の系列データに用いる深層学習モデル間の関係性、および各モデルの構造図や順伝播の式を紹介しま…

順序回帰モデルで用いられる予測量の性質

はじめに 過去の記事で、順序回帰の予測量 や がある条件のもとで、下記の(3)式を満たすと書きました(文字の意味は該当の記事をご覧ください)。本記事ではこのことを証明しようと思います。 (1)式が(3)式を満たすための十分条件と証明 (1)式が(3)式を満た…

【深層学習】順序回帰の解説

はじめに 『深層学習』という下記の本を読んでいます。この本を読んで一発で理解できなかったことをまとめています。本記事では、順序回帰についてまとめていきます。 深層学習 改訂第2版 (機械学習プロフェッショナルシリーズ)作者:岡谷貴之講談社Amazon …

【PyTorch】畳み込み演算の次元数変化:チュートリアルの解説

はじめに PyTorchのチュートリアルPyTorch60分講座: ニューラルネットワーク入門を勉強しました。本記事では、チュートリアル記載のLeNetがどのように入力画像の次元数を変化させていくのかについてまとめようと思います。 なお、私もチュートリアルを読んで…

【Python】浅いコピー・深いコピーを図解する

はじめに Pythonの浅いコピーと深いコピーについて勉強したのでまとめようと思います。 浅いコピー・深いコピーの定義 Pythonの公式ドキュメントでは、浅いコピーと深いコピーを下記のように定義しています。 浅い (shallow) コピーと深い (deep) コピーの違…

【PyTorch】テンソルがraw majorであることの確認

はじめに ↓の過去記事で「PyTorchでは、テンソルが作成されたとき、その要素はメモリ上にraw majorと呼ばれる方式で並びます」と書きました。本記事では、テンソルの要素がraw majorで並んでいることを、各要素のメモリアドレスを見ることで確認します。 ais…

【PyTorch】viewとreshapeの違い

はじめに PyTorchには、テンソルを変形するメソッドとしてtorch.Tensor.viewとtorch.Tensor.reshapeが用意されています。本記事では、メソッドviewとreshapeの違いについてまとめます。 本記事のサマリ viewは要素が順に並んでいるときしか使えない。reshape…

【PyTorch】モデルの保存と読み込み

はじめに PyTorchのチュートリアルを勉強しています。本記事では「0. PyTorch入門」の「 7. モデルの保存・読み込み」を学んだ結果をまとめようと思います。 モデルの保存・読み込み方法 PyTorchで作成したモデルの保存・読み込み方法を図1にまとめました。…

【Python】f文字列の書式指定でハマった

はじめに Pythonのf文字列の書式指定でハマったので、記録しておきます。 ハマったこと 下記のコードでprintしたときに、想定と異なる挙動をしました。 print(f"{0.123456789: <010f}") # ->「0.123457」 と表示された 書式指定が<010fなので、左詰め・桁数…

【PyTorch】Negative Log Likelihood・Kullback Leibler距離・Cross Entropyの関係

はじめに PyTorchのチュートリアルの「0.PyTorch入門 6.最適化」に、Negative Log Likelihood(以下、NLL)という損失関数が紹介されていました。私はこの損失関数を知らなかったので、調査してみました。その結果、NLLはKullback Leibler距離(以下、KL距離…

【PyTorch】テンソルに対する勾配とヤコビ行列

はじめに PyTorchのチュートリアルを勉強しています。その中の「0. PyTorch入門 5.自動微分」で分からなかったことがあったので勉強し、まとめてみます。 わからなかったこと 「0. PyTorch入門 5.自動微分」の最後の方に「補注:テンソルに対する勾配とヤコ…

【PyTorch】nn.Moduleの形で使える理由

はじめに PyTorchのチュートリアルの「0. PyTorch入門 [4]モデル構築」を勉強しています。この中で、クラスnn.Moduleを継承する箇所があります。このnn.Moduleについて、ソースコードを読んだところ、奇妙なことに気付きました。ディレクトリの構成が図1の…

【PyTorch】one hot encodingのやり方

はじめに 統計学において、分類問題を解く際に目的変数をone hot encodingすることは多々あります。本記事では、PyTorchにおいてカテゴリカル変数をone hot encodingする方法を紹介しようと思います。 フラグが1つの場合 方法1:torch.nn.functional.one_ho…

【Python】反復可能オブジェクトと[]で値を取得できるオブジェクト

はじめに Pythonを使っていると、値を複数保持している配列を扱うことが多くあります。この配列について、for文を用いることで要素の値を取り出せるものや、[]にインデックスを与えるだけで要素の値を取り出せるものがあります。この違いを勉強したので、本…

PyTorchのcatとstackの違い

はじめに PyTorchにおいてテンソルを結合するメソッドは2種類あります。catとstackです。本記事ではこれら2種類のメソッドの違いを説明します。 catとstackの違い 結論から書くと、catは次元を増やさずにテンソルを結合します。一方で、stackは次元を増や…

畳み込みネットワークの誤差逆伝播

なっとく!ディープラーニング作者:Andrew W.Trask翔泳社Amazon はじめに 現在、画像認識は自動車の自動運転や医療機関での画像診断など幅広い分野で使われています。また、画像認識に深層学習を用いた結果、精度が飛躍的に向上しました。 画像認識で深層学…

【読書記録】「心の病」の脳科学

「心の病」の脳科学 なぜ生じるのか、どうすれば治るのか (ブルーバックス)作者:林(高木)朗子,加藤忠史講談社Amazon はじめに 私は現在、双極性障害と診断されメンタルクリニックに通っています。病気の治療を効果的に進めるには、患者自身が病気のことを…

【読書記録】<弱さ>のちから(鷲田清一)

〈弱さ〉のちから ホスピタブルな光景 (講談社学術文庫)作者:鷲田清一講談社Amazon はじめに 私はこれまで学校や会社、家庭になじめない人生を送ってきました。周りの人にとって簡単にできることが、自分にとっては難しく感じるのです。 そういった経験の積…

【読書記録】<弱さ>のちから(鷲田清一)

〈弱さ〉のちから ホスピタブルな光景 (講談社学術文庫)作者:鷲田清一講談社Amazon はじめに 私はこれまで学校や会社、家庭になじめない人生を送ってきました。周りの人にとって簡単にできることが、自分にとっては難しく感じるのです。 そういった経験の積…

色々な勾配降下法

なっとく!ディープラーニング作者:Andrew W.Trask翔泳社Amazon はじめに 近年、ニューラルネットワークは分類精度の高さや様々なタスクへの応用が可能であることから、幅広い領域で使われています。私の場合、セキュリティ領域でニューラルネットワークを用…

ニューラルネットワークのドロップアウト

目次 目次 はじめに ドロップアウトの概要 問題設定 過学習を起こすニューラルネットワーク ドロップアウトを入れたニューラルネットワーク まとめ はじめに 近年、ニューラルネットワークは分類精度の高さや、様々なタスクへの応用が可能であることから、幅…

「ハンチバック」と「普通になりたいという気持ち」

ハンチバック (文春e-book)作者:市川 沙央文藝春秋Amazon はじめに 芥川賞を受賞した「ハンチバック」を読みました。本作は、先天性ミオパチーという病気に罹患している作者、市川沙央さんによって書かれた本です。主人公も同じ病気に罹患しており、小説では…

git pushしたときに403エラーが出たときの対処法

はじめに 先日GitHubのリモートリポジトリにgit pushしようとしたら、ユーザー名とパスワードを求められました。その上、正しいと思われるユーザー名とパスワードを入力したにも関わらず、 The requested URL returned error: 403 というエラーが出ました。 …