機械学習・自然言語処理の勉強メモ

学んだことのメモやまとめ

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

PyTorch:テキストの前処理(torchtext)①

torchtext NLP用のデータローダgithubはここ。 github.com下記のチュートリアルがとても丁寧だった。 github.comまた、日本語の説明だと下記が分かりやすかった。 [DLHacks LT] PytorchのDataLoader -torchtextのソースコードを読んでみた- from Deep Learni…

PyTorch入門④:utilsを使う。(torch.utils.data)

torch.utils.data データセット読み込み関連ユーティリティ。 DataLoaderは、データのロード・前処理をするためのモジュール。 必ずしもこれを使わなければいけないことは無いが、前処理を楽にしてくれる。 データセットのバッチ化 データセットのシャッフル…

PyTorch入門③:Logistic Regression

Logistic Regression 今回はLogistic Regression。 下記のチュートリアルを参考に実装した。 github.com尚、コード全体はここに置いた。 github.com データセットだが、チュートリアルはMNISTを使っているが、今回はsklearnのdigits datasetを使った。 (ロ…

Kerasで中間層の出力結果を得る

中間層の出力結果を得たい場合の方法。FAQに書いてあることをまとめただけ。 FAQ - Keras Documentationやり方は2つある。 ①新しいモデルの作成 シンプルな方法は,着目しているレイヤーの出力を行うための新しい Model を作成する # build model from kera…

PyTorch入門②:Neural Network

ネットワークはtorch.nnパッケージを使用して構築する。今回は下記にあるサンプルコードを使う。 Learning PyTorch with Examples — PyTorch Tutorials 0.3.0.post4 documentationネットワークは「入力層ー中間層ー出力層」の三層構造で線型回帰問題を想定。…

PyTorch入門①:Tensors~Autograd

はじめに 流行りに乗っかってPyTorchを勉強する。 最近、PyTorchで実装する論文が急増しているらしく、とりあえずソースコードが読めるようになりたい。 Tensors Numpyのndarrays(多次元配列)のようなもの。 GPUの高速計算のために使われるオブジェクトと…

MNISTの読み込み&描画

調べたら描画方法が色々あり、少し迷った。 今後、無駄な時間を省くための備忘録。 ダウンロード from six.moves import urllib origin = ( 'http://www.iro.umontreal.ca/~lisa/deep/data/mnist/mnist.pkl.gz' ) urllib.request.urlretrieve(origin,'mnist.…

MeCabのコスト計算を理解する。

はじめに 久しぶりにMeCabをいじる必要があったのだが、形態素解析のコスト計算らへんで理解できてなかったところがあったのでまとめる。ある単語を形態素解析する場合、その候補が複数ある場合にどう考えるか。例えば、 日本テレビ東京 辞書に「日本テレビ…

Snorkelの識別モデルについて(実装編)

はじめに 前回は生成モデルの構築について確認した。 kento1109.hatenablog.com尚、識別モデルに関する理論的なことをはこっちにまとめた。 (大したこと書いてないが・・) Snorkelの識別モデルについて(理論編) - 機械学習・自然言語処理の勉強メモ生成…

Snorkelの生成モデルについて(実装編)

はじめに コードを読んでいく Generative Model Structure Learning はじめに 前回はラベリング関数の作り方を確認した。 kento1109.hatenablog.com今回はいよいよ生成モデルに関するチュートリアルを読んでいく。 尚、理論的なことはこっちにまとめた。 Sno…

Snorkelのラベリング関数について(実装編)

はじめに 前回は前処理(候補の抽出)の流れを確認した。 Snorkelの前処理について(実装編)① - 機械学習・自然言語処理の勉強メモ 前処理が完了すると、関係の候補となるペアが出来る。 ※「配偶者」の候補となる人物名のペアただし、抽出した候補はエンテ…

Snorkelの前処理について(実装編)②

はじめに コードを読んでいく DocPreprocessor CorpusParser TaggerOneTagger taggerone_unary_tags_cdr.pkl.bz2 chem_dis_mesh_dicts.pkl.bz2 PretaggedCandidateExtractor 最後に はじめに 前回はcandidateとして文章から人物名の組み合わせを抽出するチュ…

Snorkelの前処理について(実装編)①

はじめに 前回まででSnorkelの概要、生成モデル、識別モデルに関してまとめた。 Snorkelの概要 - 機械学習・自然言語処理の勉強メモ Snorkelにおける生成モデル - 機械学習・自然言語処理の勉強メモ Snorkelにおける識別モデル - 機械学習・自然言語処理の勉…

spaCyの基本操作

spaCyとは pythonで動かす自然言語処理ライブラリ。 品詞タグ付け、固有表現抽出、構文解析などが出来る。詳しくはここ。 spacy.io 基本操作 基本的な操作を備忘録として残す。 import spacy nlp = spacy.load('en') doc = nlp(u'Jeffrey Navin saw the girl…

Snorkelの識別モデルについて(理論編)

前回で生成モデルを用いてを推定するところをまとめた。 kento1109.hatenablog.com (論文の解釈に自信が無い部分もあるが・・)生成モデルにより、データに対応するラベルが生成できた。 https://hazyresearch.github.io/snorkel/pdfs/snorkel_demo.pdf教師…

Snorkelの生成モデルについて(理論編)

Snorkelとは 一言で言うと、ラベル付き訓練データを簡単に作成できるツール。 詳しくは前回の記事にまとめた。 kento1109.hatenablog.com 尚、今回の内容は以下の論文のまとめみたいなもの。 [1605.07723] Data Programming: Creating Large Training Sets, …

識別モデルと生成モデル

機械学習の分類問題は、識別モデルと生成モデルに大別される。 (識別関数によるアプローチもあるがここでは言及しない。) 自分の頭の整理のために、これらの違いをまとめる。 識別モデル(Discriminative model) サンプルデータがクラスに分類する条件付…

Snorkelの概要

Snorkelとは Stanford大学で開発されたラベル付き訓練データを簡単に作成できるツール。 Snorkel by HazyResearch機械学習の多くはラベル付き訓練データを必要とするが、それらの作成は主に手作業で行われている。 この作業は時間やコストがかかり、効率的と…