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

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

エンジニアリング

【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】テンソルに対する勾配とヤコビ行列

はじめに 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…

PyTorchのcatとstackの違い

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

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

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

色々な勾配降下法

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

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

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

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

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

【読書記録】なっとく!ディープラーニング_第6章

目次 目次 はじめに 勾配降下法のおさらい 複数層のニューラルネットワーク 誤差逆伝播 一つの成分に対する更新式 全ての成分に対する更新式 コードに落とし込む まとめ はじめに 現在ニューラルネットワークは多くの分野で使われています。私の場合、セキュ…

【読書記録】なっとく!ディープラーニング_第5章

なっとく!ディープラーニング作者:Andrew W.Trask翔泳社Amazon 目次 目次 はじめに 勾配降下法のおさらい 入力が複数、出力は1つのニューラルネットワーク 入力が1つ、出力が複数のニューラルネットワーク 入力が複数、出力も複数のニューラルネットワーク …

pcapファイルの構造:実際にバイト列を確認してみた

目次 目次 はじめに pcapファイルの構造 pcapファイルの中身を見てみた pcapファイルの作成 バイト列を直接観測する バイト列の解釈 File Headerの中身 Packet Headerの中身 Packet Dataの中身 まとめ はじめに パケットデータを保存するファイルの一つに、p…

Prophetインストール手順(2023年6月20日現在の情報)

サマリ 「Pythonで時系列解析用パッケージProphetを使いたいが、なぜかインストールできない」という方はいらっしゃいませんか?私がそうでした。本記事では、私がProphetをインストールしたときの手順を書きます。何かの一助になれば幸いです。 Windows上に…

勾配ブースティング木を深く理解する~実装編~

本記事のサマリ 勾配ブースティング木をPythonでスクラッチ実装しました。本記事では、スクラッチ実装したコードとそれを実行した結果について書いていこうと思います。なお、勾配ブースティング木の理論については、下記の記事に書いたので興味がある方はご…

AdaBoostを深く理解する~スクラッチ実装のリファクタリング~

サマリ 前回記事(下記)では、AdaBoostをスクラッチ実装したスクリプトを提示しました。本記事では前回記事で作成したスクリプトを、再利用性や可読性が高まるようにリファクタリングした結果を提示します。 aisinkakura-datascientist.hatenablog.com 具体…

AdaBoostを深く理解する~スクラッチ実装~

サマリ AdaBoostについて勉強しています。本記事では、AdaBoostを実装する際に躓いたポイントを備忘録的に残しておこうと思います。本記事のサマリは下記です。 二値分類問題用のトイデータを作成した。 スクラッチ実装したAdaBoostを使い、上記のトイデータ…

AppGoatの紹介

2022年12月にセキュリティの勉強を始めてから、一つ感じていたことがあります。 セキュリティの基本がわかっていないから、本や論文を読んでも理解に時間がかかる セキュリティの本を読んでもイマイチ、イメージが湧かない これらの課題を感じていたところ、…

メールヘッダ・インジェクションとオープンリダイレクトの脆弱性

本記事は、メールヘッダ・インジェクションとオープンリダイレクトの脆弱性についてまとめています。なお、私はセキュリティに関してはずぶの素人で本記事にも誤りが含まれているかもしれません。その際はコメントでご指摘いただけると幸いです。 メールヘッ…

バッファ・オーバーフローとクリックジャッキング

バッファ・オーバーフローとクリックジャッキングについて勉強しました。本記事はこれらの攻撃についてまとめています。なお、私はセキュリティに関してはずぶの素人で本記事にも誤りが含まれているかもしれません。その際はコメントでご指摘いただけると幸…

認証・認可の不備とHTTPヘッダ・インジェクション

認証・認可の不備とHTTPヘッダ・インジェクションについて勉強しました。本記事はこれらの攻撃についてまとめています。なお、私はセキュリティに関してはずぶの素人で本記事にも誤りが含まれているかもしれません。その際はコメントでご指摘いただけると幸…

OSコマンド・インジェクションとセッション・ハイジャック

OSコマンド・インジェクションとセッション・ハイジャックについて勉強しました。本記事はこれらの攻撃についてまとめています。なお、私はセキュリティに関してはずぶの素人で本記事にも誤りが含まれているかもしれません。その際はコメントでご指摘いただ…

クロスサイト・リクエスト・フォージェリとディレクトリ・トラバーサル

クロスサイト・リクエスト・フォージェリとディレクトリ・トラバーサルについて勉強しました。本記事はこれらの攻撃についてまとめています。なお、私はセキュリティに関してはずぶの素人で本記事にも誤りが含まれているかもしれません。その際はコメントで…

クロスサイトスクリプティングとSQLインジェクション

クロスサイトスクリプティングとSQLインジェクションについて勉強しました。本記事はこれらの攻撃についてまとめています。なお、私はセキュリティに関してはずぶの素人で本記事にも誤りが含まれているかもしれません。その際はコメントでご指摘いただけると…

【読書記録】押さえておくべきIoTハッキング(第3~7章)

攻撃手法を学んで防御せよ! 押さえておくべきIoTハッキング作者:荻野 司,田久保 順,城間 政司インプレスAmazon IoTセキュリティの勉強をするため、本書を手に取りました。 第2章までは過去記事にまとめてあるので、もしご興味あればご覧ください。 aisinkaku…

【読書記録】押さえておくべきIoTハッキング(第2章)

攻撃手法を学んで防御せよ! 押さえておくべきIoTハッキング作者:荻野 司,田久保 順,城間 政司インプレスAmazon IoTのセキュリティを勉強しています。セキュリティの勉強は人生で初めてで、なかなか苦戦しています。 今回は、「押さえておくべきIoTハッキング…