覚え書きブログ

データ解析

極座標変換のpythonコード

通常の画像を極座標に変換するコードを、numpyのmeshgridを使って作ってみた。 ポイントは、通常の画像(カーテシアン座標系)から極座標の画像に変換する際は、極座標(theta, r)からカーテシアン座標(x,y)に変換するマップを作るところである。以下は、作…

BIとETS

降水量予報の評価によく用いられる指標にBIとETSがある。 定義は、以下の気象庁の資料に記載されている通りだが、precision, recallおよびaccuracyなどと違い、よく知られた指標ではなくまた直感的にうまく説明できないことが多いので、ベン図を使ってまとめ…

ブロック対角行列

ブロック対角行列は、numpyのkronとeyeを用いて作ることができる。例えば、以下の6行3列の行列zの2行ずつ取り出して対角に並べてみる。 z=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]) > z array([[ 1, 2, 3], [ 4, 5, 6], [ 7, 8…

ブロック単位のreshape その2

hirotaka-hachiya.hatenablog.com 前回のブロック単位でのreshapeはある特定の行列の形にしか対応できなかったが、以下のサイトによるとnumpy.hsplitとnumpy.vstackを組み合わせるとどんな行列にも対応できそう。 stackoverflow.com以下のように、4行6列の行…

ブロック単位のreshape

以下の、6行4列の行列を2行2列を一塊とするブロック単位でreshapeして12行2列の行列に変換するとする。 z=np.arange(24).reshape(6,4) >z array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ 8, 9, 10, 11], [12, 13, 14, 15], [16, 17, 18, 19], [20, 21, 22, 23]]) …

tensorflow2.2のsubclassingによるUnetの実装

前回のコードを拡張し、今度はUnetを実装してみた。 hirotaka-hachiya.hatenablog.comUNetは、以下のように、Uのような形をしたネットワークで、画像を一度低解像度化し特徴抽出してから、元の解像度に戻すことにより復元する。 特徴としては、encoderの各大…

tensorflow2.2のsubclassingによるautoencoderの実装2

前回に引き続き、autoencoderをsublassing AIPで実装してみた。 hirotaka-hachiya.hatenablog.com今回は、以下のように画像を2値化し分類問題として解いてみた。 また、ラベルをone-hotベクトルで表現し、embeddingベクトルに追加してみた。 # 画像の2値化 x…

tensorflow2.2のsubclassingによるautoencoderの実装

以下を参考に、tensorflow2.2以降で許可されたtrain_step, test_stepおよびpredict_stepのオーバーライドを用いて、Subclassing APIでautoencoderを実装してみた。 hirotaka-hachiya.hatenablog.com以下は、全体のコードである。元画像と復元画像の平均二乗…

train_stepのオーバーライドによるsubclassingの簡単化

以下では、tensorflowのバージョン2.1を前提にSequential、FunctionalおよびSubclassing APIを用いた実装方法についておおざっぱにまとめた。 hirotaka-hachiya.hatenablog.com tensorflow 2.1のSubclassing APIでは、自由度が高い分学習まわりでfor文でepoc…

tensorflow2を用いたCNNの実装方法

最近ようやくtensorflow2に移行しはじめたが、kerasの流れがあるからなのか実装方法が沢山あって、なんだかややこしい。 以下のサイトに詳しくまとまっているように、Sequential API、Functional APIおよびSubclassing APIの3つの実装方法がある。 qiita.com…

chromedriverのインストール

Python+seleniumでウェブページからのスクレイピングやキャプチャをするために、google chromeを用いる。 pythonからchromeの機能を使うためには、chromeのバージョンに合わせたドライバーが必要となる。1)まず、インストールされているchromeのバージョン…

Tesseract OCR

TesseractというOCRのオープンソースをインストールして動かしてみた。Tesseractのアルゴリズムについては、 以下のGoogleのRay Smith氏の論文にて述べられている。 http://www.cip.ifi.lmu.de/~langeh/test/2007%20-%20Smith%20-%20An%20Overview%20of%20th…

dropoutとbatch normalizationの特許

dropoutの特許「System and method for addressing overfitting in a neural network」がactiveになっている。 patents.google.comBatch normalization layersの特許がactiveになっている。 patents.google.comディープラーニングの学習に、dropoutとbatch n…

PythonでPoisson分布

PythonでPoisson分布を扱う便利なライブラリとしては,scipy.stats.poissonがある. docs.scipy.org早速使ってみる. まずは,pmf関数を用いて確率密度を計算する. ポアソン分布は平均回数muを指定すると,muを期待値として,もっともらしい,発生回数,訪…

3次元計測の覚え書き(ハミングカラーコードのマッチング編)

以下を参考にして、プロジェクターとカメラを用いた3次元計測の前準備として、ハミングカラーコードを用いてプロジェクターとカメラの位置関係のキャリブレーションを行ってみた。 qiita.com github.com ハミングカラーコードをプロジェクターから投影し、…

google colaboratoryからgithubに保存

google colaboratoryは、github、gistなどと連動させることができ、colaboratory上で作成したファイルを気軽にこれらの外部のサイトで保存し、公開することができる。 まずは、colaboratoryの画面のファイルメニューから「GitHubにコピーを保存」を選択する…

google colaboratoryでcsvファイルの読み込み

Amazon Cloud9+jupyter notebookのような機能が、以下のgoogle colaboratoryで提供されている。 https://colab.research.google.comまず、colaboratoryにアクセスすると以下のような画面がでるので、「PYTHON3の新しいノートブック」をクリックする。 そうす…

scikit-learnを用いた機械学習(教師あり学習 3/3)

<< scikit-learnを用いた機械学習(教師あり学習 2/3) 教師あり学習:分類 手書き数字データMNIST 関数の学習 評価 precision(適合率) recall(再現率) F1スコア(適合率と再現率の調和平均) confusion matrix (混同行列) 教師あり学習のフローのク…

scikit-learnを用いた機械学習(教師あり学習 2/3)

<< scikit-learnを用いた機械学習(教師あり学習 1/3) 教師あり学習のフローのクラス化 演習1 教師あり学習のフローのクラス化 以下は、教師あり学習(回帰)の一連のフローを、クラス化したものです。 import pandas as pd import numpy as np import …

scikit-learnを用いた機械学習(教師あり学習 1/3)

Pythonの代表的な機械学習ライブラリであるscikit-learnを用いて教師あり学習の回帰と分類を実装し、実際にデータから関数を学習していきます。 Scikit-learnとは 教師あり学習のフロー 教師ありデータの準備 データの前処理 訓練用と評価用とに教師データを…

scikit-learnを用いた機械学習(Pythonの基礎 4/4)

<< scikit-learnを用いた機械学習(Pythonの基礎 3/4) 参考書 本ブログの内容の詳細は、「機械学習スタートアップシリーズ ゼロからつくるPython機械学習プログラミング入門」に掲載されています。 機械学習に必要な数学の復習から、機械学習のアルゴリ…

scikit-learnを用いた機械学習(Pythonの基礎 3/4)

<< scikit-learnを用いた機械学習(Pythonの基礎 2/4) 参考書 本ブログの内容の詳細は、「機械学習スタートアップシリーズ ゼロからつくるPython機械学習プログラミング入門」に掲載されています。 機械学習に必要な数学の復習から、機械学習のアルゴリ…

scikit-learnを用いた機械学習(Pythonの基礎 2/4)

<< scikit-learnを用いた機械学習(Pythonの基礎 1/4) 参考書 本ブログの内容の詳細は、「機械学習スタートアップシリーズ ゼロからつくるPython機械学習プログラミング入門」に掲載されています。 機械学習に必要な数学の復習から、機械学習のアルゴリ…

scikit-learnを用いた機械学習(Pythonの基礎 1/4)

Pythonとは Anacondaを用いたPython環境の構築 VS codeを用いた開発 jupyter notebookを用いたインタラクティブ開発 Google colaboratoryを用いたインタラクティブ開発 Pythonとは Pythonは、近年、機械学習を用いたデータ解析やソフトウェアの研究開発にて…

pythonでの地図表示

Pythonで地図を表示するためのライブラリとして、basemapというのがあるらしいので、早速使ってみた。condaを使って、basemapと地図データをインストールする。 >conda install -c anaconda basemap >conda install basemap-data-hiresさっそく、Basemapモジ…

Pythonによる機械学習8(Q学習の応用)

前回実装した強化学習の代表的な手法であるQ学習を、各グループで設定したタスクに応用してみましょう。 タスクは、OpenAI gymから選んでください。 gym.openai.com 参考書 本ブログの内容の詳細は、「機械学習スタートアップシリーズ ゼロからつくるPython…

Pythonによる機械学習7(Q学習 3/3)

【Pythonによる機械学習7(Q学習 3/3)】 参考書 本ブログの内容の詳細は、「機械学習スタートアップシリーズ ゼロからつくるPython機械学習プログラミング入門」に掲載されています。 機械学習に必要な数学の復習から、機械学習のアルゴリズムの導出お…

Pythonによる機械学習7(Q学習 2/3)

【Pythonによる機械学習7(Q学習 2/3)】 参考書 本ブログの内容の詳細は、「機械学習スタートアップシリーズ ゼロからつくるPython機械学習プログラミング入門」に掲載されています。 機械学習に必要な数学の復習から、機械学習のアルゴリズムの導出お…

Pythonによる機械学習7(Q学習 1/3)

【Pythonによる機械学習7(Q学習 1/3)】 参考書 本ブログの内容の詳細は、「機械学習スタートアップシリーズ ゼロからつくるPython機械学習プログラミング入門」に掲載されています。 機械学習に必要な数学の復習から、機械学習のアルゴリズムの導出お…

Pythonによる機械学習6(強化学習の基礎 3/3)

【Pythonによる機械学習6(強化学習の基礎 3/3)】 参考書 本ブログの内容の詳細は、「機械学習スタートアップシリーズ ゼロからつくるPython機械学習プログラミング入門」に掲載されています。 機械学習に必要な数学の復習から、機械学習のアルゴリズム…