kaeken(嘉永島健司)Techブログ

主に情報科学/情報技術全般に関する知見をポストします。(最近は、特にData Science、機械学習、深層学習、統計学、Python、数学、ビッグデータ)

(2018-02-02)気になるAI/ML/DSニュース・記事・サービスなど

米国500社の財務諸表ビッグデータ分析で見えた7つの事実 - データで見る世界 バイアスを取り除く方法はただ一つ。データ分析です。データは嘘をつきません。賢そうな人の意見を鵜呑みにするのではなく、自分で生のデータを分析すれば、事実にたどり着けます…

Python/pandas公式チートシート解説:前処理のゴールとなるTidy Dataとは

pandas githubのドキュメントに公式のチートシートがアップされています。 github.com このpandasチートシートには、重要な概念やコマンド実行方法が整理されていますので、項目をひとつずつ解説していきます。 なお、このチートシートは、もともとR言語のチ…

Python/pandas エンコードされたone-hotデータをデコードする方法

機械学習の学習用データでよく使われるone-hotエンコーディングされたデータがあります。 one-hotエンコーディング処理は、さまざまなライブラリで実装されています。 sklearn.preprocessing.OneHotEncoder — scikit-learn 0.19.1 documentation http://scik…

気になったAI/ML/DSニュース・サービスなど(2018-02-01)

Google、オープンソース機械学習ライブラリの最新版「TensorFlow 1.5」を発表:使い勝手やモバイル対応、GPUサポートが向上 - @IT http://www.atmarkit.co.jp/ait/articles/1801/30/news038.html 24研究室と1日で会える!人工知能・IoT・ビッグデータ分野で…

Python/pandasでグルーピングした複数行をカンマ区切りの一行にする方法

Python/pandasを使って、以下のようにグルーピングした複数行を一行にする方法について解説します。 before col1 col2 0 1 hoge 1 2 fuga 2 3 piyo 3 1 foo 4 2 bar 5 3 baz after:col1でグルーピングした上で、col2を一行に集約 col1 1 hoge,foo 2 fuga,ba…

『ゼロから作るDeep Learning』数学用語一覧

『ゼロから作るDeep Learning』に出てくる数学用語について調べていく。 ただ、定義だけ追っていても意味が分からないので、 実際の使われ方については、高校レベルの数学を別途復習が必要。 では、以下数学用語を列挙していく。 線形とは https://ja.wikipe…

『Pythonからはじめる数学入門』7章(後半) 初等解析問題を解く / 高階微分および積分

『Pythonからはじめる数学入門』7章(後半) 初等解析問題を解く の解説です。 7.5 高階微分と極大極小の計算 Derivativeクラスを使った微分オブジェクトのデフォルトは、 1階微分です。 高階微分をおこなうには、階数を第三引数に渡します。 ここでは、関数…

『Pythonからはじめる数学入門』7章(前半) 初等解析問題を解く

『Pythonからはじめる数学入門』7章(前半) 初等解析問題を解く に関する解説です。 7.1 関数とは何か 7.1.1 関数の定義域と値域 数学そのものの説明は省略しますが、用語を記しておきます。 写像mapping 定義域domain 値域range 7.1.2 よく使われる数学関…

『Pythonからはじめる数学入門』5章 集合と確率を操作する

『Pythonからはじめる数学入門』 5章 集合と確率を操作する の解説です。 5.1 集合とは何か 集合(set)、要素(element)といったキーワードの意味は、高校数学で出てきていますのでここでは省略します。 以下、Pythonで集合の演算方法をみていきます。 5.1.1 …

『Pythonからはじめる数学入門』4章 SymPyで代数と式を計算する

『Pythonからはじめる数学入門』 4章 SymPyで代数と式を計算する の解説です。 いままでは、数値計算でしたが、 xやyといった代数においては、 式の計算(symbolic math)が必要です。 Pythonでは、SymPyを使って式の計算をおこないます。 以下は、SymPyのリフ…

『Pythonからはじめる数学入門』3章 データを統計量で記述する

『Pythonからはじめる数学入門』 3章 データを統計量で記述する の解説です。 機械学習では、 統計がよく出てくるので、 ここでは、統計の基本をPythonで学びます。 3.1 平均を求める まずは、平均値を求める関数です。 def calculate_mean(numbers): s = su…

『Pythonからはじめる数学入門』2章 データをグラフで可視化する

『Pythonからはじめる数学入門』 2章 データをグラフで可視化する の解説です。 www.oreilly.co.jp 機械学習で数値データを提示する際には、 グラフを用いることが多いです。 今回は、 Pythonでグラフを使う方法についてご説明します。 2章 データをグラフで…

1章 数を扱う / まずは基本的な演算と数の種類を把握『Pythonからはじめる数学入門』

機械学習を学ぶ際に、Pythonでの数式表現でつまづくことがある。 そこで、 『Pythonからはじめる数学入門』 をコツコツ通読&コマンドを打つことで、 数式表現に慣れていく。 まずは、 基本的な演算と数の種類を把握。 数値処理に強いPythonっぽいメソッドも…

データサイエンティスト(DS)になるためのスキルチェックシート

一般社団法人データサイエンティスト協会 という団体からデータサイエンティスト(以下DS)になるための目安となる スキルチェックシートが提供されている。 DSスキルチェック | Data Scientist Society Journal DSスキルチェック | Data Scientist Society Jo…

「新しい人工知能の教科書」は教科書ではなくカタログ

まずは先に人工知能の全体像を確認。 「新しい人工知能の教科書」を通読したが、この本は教科書というより知識のカタログ。 各知識の概要紹介と、参照資料をもとに、自分で深堀していく必要がある。 www.shoeisha.co.jp 【目次】 CHAPTER1 人工知能の過去と…

機械学習プロフェッショナルシリーズ一覧

機械学習プロフェッショナルシリーズというシリーズ本がある。 機械学習プロフェッショナルシリーズ | 書籍情報 | 株式会社 講談社サイエンティフィク 以下、既刊本。出版時期ごとに勝手にナンバリング。 1-1 機械学習のための確率と統計 978-4-06-152901-4 …

機械学習リンク集

機械学習 - Wikipedia 機械学習に関する4118件の投稿 - Qiita タグ「機械学習」 を検索 - はてなブックマーク Search · machine learning

Deep Learning用語 日本語一覧

続いて、Deep Learning用語 日本語一覧。 こうして一覧にしてみると、うまく説明できない用語もあったり、スキップしたワンポイントコラム記事で言及されていた用語もあり、まだ復習が必要だ。 余談だが、最近は、だんだん人工知能視点になってきた。 「どこ…

Deep Learning用語一覧(英語)

『ゼロから作るDeep Learning』で深層学習を学び、自分自身の物理ニューラルネットワーク=脳を訓練中だが、一通り用語を一覧にした。 理論、実装、その他さまざまな用語が混ざっているが、これらを見ながら説明できない用語をピックアップして、本書を復習…

CS231n: Convolutional Neural Networks for Visual Recognition

『ゼロから作るDeep Learning』で何度も言及されていたスタンフォード大学の講義資料を参照する。 CS231n: Convolutional Neural Networks for Visual Recognition cs231n.github.io http://cs231n.stanford.edu/syllabus.html 英語は日常的に使っていないが…

8章 ディープラーニングDL『ゼロから作るDeep Learning』

本書の最後の8章は、現在のDLを俯瞰した説明なので、目次に合わせてメモ書き。 8章 ディープラーニング 8.1 ネットワークをより深く 8.1.1 よりディープなネットワークへ 8.1.2 さらに認識精度を高めるには これまで論文発表された手法の認識精度ランキング…

7章 畳み込みニューラルネットワークCNN 畳み込み層とプーリング層の実装『ゼロから作るDeep Learning』

↓ 7章 CNNの実装について。 畳み込み演算では、4次元データを処理する必要がある。 (batch_num, channel, hegiht, width) そこでフィルタにとって都合の良い入力データを展開する関数im2colを使用する def im2col(input_data, filter_h, filter_w, stride=…

畳み込み演算を図解するライブラリconv_arithmetic

7章のCNNで畳み込み演算を図解するツールを探していたら以下を見つけた。 github.com パディングやストライドの条件を指定できる。 texを使って記述するようだが、texはそれほど詳しくないので、必要に応じて調べておく。 文章や数式だけでは理解しづらい場…

7章 畳み込みニューラルネットワーク 畳み込み層Convolution layerとプーリング層Pooling layer『ゼロから作るDeep Learning』

さて、いよいよ畳み込みニューラルネットワークConvolution Neural Network, CNNまで来た。 最新の画像認識・音声認識でほぼ使われているCNNをじっくり理解していく。 CNNでは、今までのレイヤに、 畳み込み層Convolution layer プーリング層Pooling layer …

深層学習用の数学プログラミングは『Pythonからはじめる数学入門』より『行列プログラマー』かも

以下、手を動かしていないが、いったん通読完了。 www.oreilly.co.jp 目次 1章 数を扱う 1.1 基本数学演算 1.2 ラベル:名前に数を割り当てる 1.3 さまざまな種類の数 1.3.1 分数を扱う 1.3.2 複素数 1.4 ユーザ入力を受け取る 1.4.1 例外と不当入力の処理 1…

6章 学習に関するテクニック ハイパーパラメータ(hyper-parameter)の検証 『ゼロから作るDeep Learning』

6章 最後に、ハイパーパラメータ(hyper-parameter)の検証について。 ハイパーパラメータは人為的に試行錯誤しながら調整がするので検証が必要である。 しかし、汎化性能を評価するには、最終的に評価するための本番のテストデータが使えない。 そこで、ハイ…

6章 学習に関するテクニック 正則化, Weight decay, Dropout 『ゼロから作るDeep Learning』

続いて、正則化について。 過学習overfittingの起きる主な2つの原因 ・パラメータを大量に持ち、表現力の高いモデルであること ・訓練データが少ないこと 敢えて過学習させたケースをサンプルコードで確認する # cat overfit_weight_decay_pre_save.py # co…

6章 学習に関するテクニック Batch Normalization 『ゼロから作るDeep Learning』

6章 学習に関するテクニック『ゼロから作るDeep Learning』 続いて、Batch Normalization Batch Normalization(Batch Norm)とは:ミニバッチごとに正規化する手法。 メリット: 学習を速く進行させることができる 初期値にそれほど依存しない(初期値にロバ…

6章 学習に関するテクニック 推奨される重み初期値 『ゼロから作るDeep Learning』

6章 学習に関するテクニック 『ゼロから作るDeep Learning』 続き。 重みの初期値について。 結論として、重みの初期値をゼロにするのはNG。 重みの対照的な構造を崩し、ランダムな初期値を設定する。 勾配消失gradient vanishing:逆伝播での勾配の値が徐…

6章 学習に関するテクニック SGDとMomentum, AdaGrad, Adam 『ゼロから作るDeep Learning』

6章 学習に関するテクニック この章では、NN学習でキーとなるアイデアについて学ぶ。 パラメータの更新 重みの初期値 Batch Normalization 正則化 ハイパーパラメータの検証 まとめ パラメータの更新について。 最適化optimizationとは:NN学習目的である「…