disassemblerのブックマーク (42)

  • 【深層学習】埋め込み(Embedding)や埋め込み層の仕組みと実装を理解する | 機械学習と情報技術

    埋め込みとは、自然言語処理(Natural Language Processing, NLP)の文脈では、自然言語などの文章や単語を、数値的に扱えるようにベクトル化することを示します。 Embedding(埋め込み)の目的 埋め込みの主たる目的は、冒頭で述べたように、単語や文章を計算機で扱えるようなベクトルデータに変換することです。 通常の機械学習の入力はほぼ必ずベクトルになるので、自然言語などは何かしらの方法でベクトルの形式にする必要性があります。また文章だけでなく、カテゴリカルな値も、ベクトル化してあげる必要性があります。 通常、文章や単語などをベクトル化する手法として、one-hot-encoding(1-of-K表現)が知られています。しかし、実際には、one-hot-encodingはほとんどの値が0になる、スパース行列 になってしまうため、計算機のメモリを大量に使用してしまうた

    disassembler
    disassembler 2022/12/01
    embeddingについて
  • 【GCN】pytorchでグラフ畳み込みネットワーク(GCN)を実装する | 機械学習と情報技術

    GCN(Graph Convolutional Network、グラフ畳み込みネットワーク) は、2017年に深層学習のトップカンファレスであるICLRで発表されて以来、徐々に注目を集めており、2022年現在深層学習関連のホットトピックでもあります。 今回は、このGCNについて解説しながら、pytorchで実装をしていきます。今回はライブラリとして、GNNをpytorchから簡単に利用できる、pytorch geomatricを利用します。 主にpytorchを使ってGCNを実装することを目標にしているので、GCNの詳しい構造や理論的な側面はこちらの記事で解説をしています。 とりあえず、Pytorchを利用して、GCNを動かしたい人や、そもそもGCNでどのような問題を解くことができるのかについて解説をしていきます。 今回GCNで解くタスク こちらの記事でGNNについて解説していますが、GC

    disassembler
    disassembler 2022/12/01
    【GCN】pytorchでグラフ畳み込みネットワーク(GCN)を実装する
  • Graph Attention Network (GAT) — Attention機構をグラフに導入する仕組み | 機械学習と情報技術

    深層学習やGNN(Graph Neural Network)関連の論文を読み漁っていると、Graph Attention Network(GAT, グラフアテンションネットワーク)に関する論文を目にすることが多くあると思います。 GAT(は、GNN(Graph Neural Network)やGCN(Graph Convolutional Network)の枠組みに、Attentionの機構を取り入れることで、深層学習の予測精度を上げたモデルとなっています。 この記事では、2018年に発表された元論文に基づいて、GATについて分かりやすく解説していきます。 Graph Attention Networkの概要 GATは、一言で言えば、深層学習でグラフ構造の分類などを行うことができるGCNと呼ばれる手法に、Attentionの機構を取り入れた手法です。 Attentionの機構とは、入力され

    disassembler
    disassembler 2022/11/26
    Graph Attention Networkのまとめ
  • 【深層学習】GCN(グラフ畳み込みネットワーク)をわかりやすく解説する | 機械学習と情報技術

    GCN(Graph Convolution Network)は、GNN(Graph Neural Network)の1種類で、2022年現在、機械学習AIのトップカンファレンスであるICMLやICLRで、非常に多くGCNやGNN関連の論文が登場するなど、現在非常に盛んに研究が盛んに行われています。 GCN自体の論文は、2017年にICLRで、 SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS の論文として発表されました。 その後、GCNの派生系のアーキテクチャや手法は数多く登場していますが、一般的にGCNと呼ぶ際には、この論文の手法を指している場合が多く、非常に重要な論文となっています。なんと、2022年現在でも、14000件近い引用がされているほど、深層学習分野で非常に重要な論文となっていると思います。 今

    disassembler
    disassembler 2022/11/26
    GCNの解説。わかりやすい。
  • 【Graph Attention Networks解説】実装から読み解くGAT - ころがる狸

    こんにちは。機械学習の適用先としては、自然言語処理、画像解析、時系列解析など幅広い分野があるわけですが、今日はグラフ構造に対する機械学習モデルを紹介したいと思います。グラフで表現出るものは多く、例えば人間関係だとか、論文の引用・被引用関係、さらには化合物の構造なども当てはまります。近年のグラフニューラルネットワークの多くはグラフの頂点や辺を何らかの特徴量で表現し、それらを周囲の情報を取り込みながら更新していくという仕組みを取っています。数多くの事例が報告されていますが、特に注目されているGraph Attention Networks(GAT)について取り上げます。 原著論文はこちら。これを理解するための鍵は、グラフの頂点を表す特徴量をどのように更新するか、そしてグラフの頂点と頂点の「つながり」の重要度をどのように計算するか、という2点にあると思います。 arxiv.org Graph A

    【Graph Attention Networks解説】実装から読み解くGAT - ころがる狸
    disassembler
    disassembler 2022/11/23
    GOOD!
  • 【PyG】PyTorch Geometricのインストール方法から利用方法まで解説 | 機械学習と情報技術

    PyG(PyTorch Geometric)は、PyTorchでグラフ構造を取り入れた、GCNやGATなどのニューラルネットワークを簡単に実装、学習、推論などができるライブラリです。 グラフ構造を有するオープンなデータセットへのAPIも多数あり、PyTorchでGNNのアルゴリズムを試す際には、ほぼPyG一択になるかと思います。 しかしそんな状況にもかかわらず、PyGに関する日語での情報はほとんどないため、この記事ではPyGのインストール方法から基的な利用方法まで説明します。 pytorch geometricで扱われるグラフやノードなどのデータ構造、またこれらの操作方法から、データセットAPIを用いて、世の中のオープンなデータセットを簡単に準備する方法まで、丁寧にまとめていきたいと思います。 基的に公式ドキュメントの内容を丁寧にまとめる内容となっています。 記事の内容 PyGのイ

    disassembler
    disassembler 2022/11/23
    pytorch geometricでGNNをする準備ができる
  • 交差エントロピー誤差(クロスエントロピー)— 定義・情報理論・勾配・実装を完全解説 | 機械学習と情報技術

    ニューラルネットワークで「この画像はか犬か鳥か」を分類するとき、モデルの良し悪しをどう測ればよいでしょうか。単に「当たった/外れた」の正答率だけでは、学習を進めるための滑らかな手がかりになりません。「正解にどれだけ自信を持てたか」を連続的に評価し、外れているほど大きなペナルティを与える——この役割を担うのが 交差エントロピー誤差(Cross-Entropy Loss、クロスエントロピー) です。 交差エントロピーは、画像分類・自然言語処理(言語モデルの次単語予測)・音声認識など、分類タスクのほぼ標準の損失関数として使われています。名前は仰々しいですが、中身は「正解クラスの予測確率に $-\log$ を取るだけ」とシンプルです。この記事では、その定義から情報理論的な意味、勾配の美しさ、そして「なぜ分類では二乗誤差より交差エントロピーが好まれるのか」までを、図とコードで一気に理解します。 先

    disassembler
    disassembler 2022/11/18
    交差エントロピーがビジュアルで理解できる。数式なんていらんかったんや!(大嘘)
  • 【グラフ構造】論文の引用データセットCoraを利用する | 機械学習と情報技術

    Coraデータセットは、論文の引用・被引用関係を集めたデータセットであり、機械学習や深層学習の論文で非常によく利用されています。 今回は、このCoraデータセットを準備し利用する方法について、簡潔でわかりやすくまとめていきます。グラフ構造の扱いに慣れていない人など、ぜひ参考にしてみてください。 Coraデータセットは非常によく利用されているデータセットであり、csv形式でダウンロードしてpandasで読み取る方法や、pytorchの関連モジュールであるPyTorch Geometric(PyG)を用いた手法があります。 近年はかなりpytorchが利用され、特に深層学習や機械学習などを利用している研究者の界隈ではほとんどデファクトスタンダードになっていることから、今回はPyTorch Geometric (PyG)を用いて、Coraデータセットを準備する方法について紹介します。 Coraデ

    disassembler
    disassembler 2022/11/17
    Coraデータセット(論文の引用・被引用関係)
  • ガンマ分布とは?期待値や分散などをわかりやすく解説 | 機械学習と情報技術

    ガンマ分布(Gamma distribution)は、正の実数 $\lambda \in \mathcal{R}$を確率変数の範囲にもつ、連続確率分布です。 よくベータ分布(Beta distribution)と混同されがちですが、ベータ分布は確率変数の値の範囲が0~1の確率分布なので、この2つを混同しないようにしましょう。 確率変数の範囲が実数の範囲であることから、ポアソン分布(Poisson Distribution)のパラメータ$ \lambda$の共役事前分布としても、ガンマ分布は使われることがあります。今回は、ガンマ分布の性質について、その形状や期待値や分散等の統計量までわかりやすく解説します。 ガンマ分布の数式 ガンマ分布は、下記のような2つのパラメータを有する連続確率分布です。 ガンマ分布の確率密度関数の定義 ガンマ分布は、正の実数をとる$\alpha$ 、$\beta$ の

    disassembler
    disassembler 2022/11/15
    ガンマ分布についてわかりやすく解説.
  • 指数型分布族とは?分かりやすく解説する | 機械学習と情報技術

    今回の記事では、指数型分布族(exponential family)について解説していきます。中々聞き慣れない用語かもしれませんが、指数型分布族は、下記のような形式をとる確率分布の総称のことを示します。 \begin{equation} p(x | \eta) = h(x)g(\eta)exp \bigr \{ \eta^Tu(x) \bigr \} \end{equation}

    disassembler
    disassembler 2022/11/13
    指数型分布属について
  • 混同行列とTP/TN/FP/FN 完全ガイド — 分類モデル評価指標とROC/AUCまで | 機械学習と情報技術

    血液検査で「陽性」と告げられたとき、当に病気である確率はどれくらいでしょうか。スパムフォルダに振り分けられたメールのうち、当に迷惑メールなのは何割でしょうか。クレジットカードの不正利用検知システムが「正常」と判断した取引のなかに、実は不正取引はどれくらい紛れ込んでいるでしょうか。 これらの問いに答えるには、「正しく当てた」「外した」を一括りに語るだけでは足りません。外し方には二種類あるからです。当は陽性なのに見逃してしまう外し方と、当は陰性なのに陽性と誤って警報を鳴らす外し方。この二つは、現場ではまったく違うコストを生みます。癌の見逃し(False Negative)は患者の生死に関わる一方、健常者への誤陽性(False Positive)は不要な精密検査を招くだけ。スパムフィルタなら逆で、正常なメールをスパム扱いする偽陽性こそが致命的です。 機械学習で分類器を作るとき、この「外し

    混同行列とTP/TN/FP/FN 完全ガイド — 分類モデル評価指標とROC/AUCまで | 機械学習と情報技術
  • KLダイバージェンス完全ガイド — 確率分布間の情報量距離を直感で理解する | 機械学習と情報技術

    ある言語モデルが「次に来る単語」の確率を予測したとします。$P$ を真の分布、$Q$ をモデルの予測分布としたとき、「$Q$ は $P$ にどのくらい近いか」を一つの数字で表せるでしょうか。あるいは、コインを100回投げて60回表が出たとき、「表確率 $0.5$ という仮説」と「$0.6$ という仮説」のどちらが観測データ分布に近いと言えるでしょうか。こうした「2つの確率分布の違いを定量化する」という問いに、情報理論から自然に導かれる答えが KLダイバージェンス (Kullback-Leibler divergence、KL情報量、相対エントロピー) です。 KLダイバージェンスは、機械学習・統計の中核にいる道具です。ニューラルネットの分類で使われるクロスエントロピー損失は実質KL最小化と等価ですし、画像生成で有名な VAE (変分オートエンコーダ) の損失関数には事前分布と近似事後分布の

    KLダイバージェンス完全ガイド — 確率分布間の情報量距離を直感で理解する | 機械学習と情報技術
    disassembler
    disassembler 2022/11/10
    地味にわかりやすくまとまっている.
  • 【時系列解析】Pythonで自己相関係数を計算してコレログラムを描く | 機械学習と情報技術

    時系列分析などに取り組んでいると、必ず自己相関グラフ(コレログラム)と呼ばれるグラフが登場します。 これは、時系列グラフにおける、自己相関係数をプロットしたもので、時系列における季節性を調査する際によく、このコレログラムを用いたりします。 とはいえ、この自己相関係数が、そもそも時系列データにおける何を意味しているか理解しないと。コレログラムについて理解することはできないでしょう。 今回は、コレログラムを書くために、自己相関係数の解説と実際にPythonを用いてコレログラムを書く方法を解説します。 記事の内容 自己相関係数の定義をわかりやすく解説 自己相関グラフ(コレログラム)を解説 コレログラムをPythonを用いて描く 自己相関係数の定義 時系列データにおける自己相関$r_k$の定義を先に示します。 時系列データにおける自己相関係数の定義 自己相関を$r_k$とした時、自己相関係数は次

    【時系列解析】Pythonで自己相関係数を計算してコレログラムを描く | 機械学習と情報技術
    disassembler
    disassembler 2022/11/10
    地味にわかりやすい
  • 【DataFrame】機械学習で必要なpandasの操作をまとめる | 機械学習と情報技術

    機械学習データ分析をする際で、pandasは息を吸うように利用することになります。 pandasではDataFrameやSeries等のデータ構造があり、これらをうまく操作しながら、データの分析を進めることになります。今回は、pandasを扱う中で意外と使うような操作について、まとめます。 pandasのDataFrameとSeriesの基的な構造 pandasでは大きくDataFrameとSeriesの2つの構造があります。DataFrameは、列と行の情報をもつテーブル構造のデータで、Seriesは、1列もしくは一行の情報を持つようなデータとなります。 DataFrameとSeriesの違いを図形にわかりやすく可視化すると次にようになります。 この記事では、主にDataFrameを便利に操作するような内容をまとめます。 またDataFrameですが、DatFrameは次にようなin

    【DataFrame】機械学習で必要なpandasの操作をまとめる | 機械学習と情報技術
    disassembler
    disassembler 2022/11/09
    pandas
  • ポアソン混合モデルの生成モデルからサンプリングする | 機械学習と情報技術

    ベイズモデルにおいては、あるモデルを考えるときに、生成モデル(generative model)を考えます。生成モデルとは、データが生成する過程をモデル化することで、データの分布を表現する手法です。 生成モデルによる定式化を理解していないと、ベイズ手法で問題に合わせたモデルを構築することは難しいため、今回は、あえて基的な問題であるポアソン混合モデルを通して、ベイズモデルを構築する練習をします。 ポアソン混合モデルの概要 例えば、このようなデータが存在したとします。このデータは、多峰性で、正規分布などの単純な確率分布では表現できなそうですよね。混合分布では、このような分布を、複数のポアソン分布の重ね合わせとして表現します。 例えば、こちらのデータは峰が3つほどあるので、3つのポアソン分布の重ね合わせてできているというように表現します。 例えば、パラメータがそれぞれ、20, 50, 80mの

    ポアソン混合モデルの生成モデルからサンプリングする | 機械学習と情報技術
    disassembler
    disassembler 2022/11/03
    混合ポアソンモデルを理解するのにとてもわかりやすく説明している
  • カーネル法とカーネルトリック — 高次元写像を計算せずに非線形分類を実現する | 機械学習と情報技術

    平面に散らばった赤と青の点を、1の直線できれいに分けたい——機械学習の入門で最初に出会う「線形分類」の問題です。ところが現実のデータはそんなに親切ではありません。赤い点が中心にかたまり、青い点がそれを取り囲むドーナツ状に並んでいたら、どんな直線を引いても分離できません。同心円という構造そのものが、線形では扱えない非線形性を持っているからです。 ここで素朴な発想が湧きます。「2次元では分けられないなら、3次元目を足してみたらどうか」。たとえば各点に $z = x^2 + y^2$ という新しい座標を付け加えれば、内側の点は $z$ が小さく、外側の点は $z$ が大きい。3次元空間で見ると、赤と青は高さの違う2つの層に分かれ、水平面1枚で分離できてしまいます。「線形分離できないなら高次元に飛ばせばよい」——これこそがカーネル法の原点です。 しかしこのアイデアには重大な落とし穴があります。高

    カーネル法とカーネルトリック — 高次元写像を計算せずに非線形分類を実現する | 機械学習と情報技術
    disassembler
    disassembler 2022/10/20
    カーネルトリックについてまとめている
  • 雑記: Schur 補行列と Sherman-Morrison-Woodbury の公式とカルマンフィルタとガウス過程回帰の整理 - クッキーの日記

    公式の証明はありません(参考文献の1つ目に詳しいのでそちらをご参照ください)。何か問題点がありましたらご指摘いただけますと幸いです。 参考文献Sherman-Morrison-Woodburyの公式 (Schur補行列) - いんふらけいようじょのえにっきパターン認識と機械学習 上 (ベイズ理論による統計的予測) | C.M. ビショップ, 元田 浩, 栗田 多喜夫, 樋口 知之, 松 裕治, 村田 昇 | | 通販 | Amazon(82~85ページ) パターン認識と機械学習 下 (ベイズ理論による統計的予測) | C.M. ビショップ, 元田 浩, 栗田 多喜夫, 樋口 知之, 松 裕治, 村田 昇 | | 通販 | Amazon(17~19ページ)(2018-12-15 追記)先にこの記事は何なのかというと、カルマンフィルタとガウス過程回帰は、どちらも観測にノイズがのっていた

    雑記: Schur 補行列と Sherman-Morrison-Woodbury の公式とカルマンフィルタとガウス過程回帰の整理 - クッキーの日記
    disassembler
    disassembler 2022/09/23
    すごい記事。
  • 雑記: 分散共分散行列のベイズ更新の話 - クッキーの日記

    2021-02-02 絵を追加しました。いろいろな場面(カルマンフィルタ、ガウス過程回帰など、直接観測できない何かの分布をその線形変換の観測からベイズ更新する場面)で以下の問が出てくると思います。 は確率ベクトルでその事前分布は平均 で分散共分散行列が の多変量正規分布です。 も確率ベクトルで です。 は行列です。 は平均 で分散共分散行列が の多変量正規分布にしたがうノイズで とは独立です。 いまある が観測されました。この の下での(=事後分布の) の分散共分散行列はどうなりますか?普通はベイズの定理で の確率密度関数を考えると思います。方法1.ベイズの定理で の確率密度関数をかく より の事後分散共分散行列は である。 こうすると観測前は精度行列(分散共分散行列の逆行列で、多変量正規分布の密度関数の式で確率ベクトルに挟まれているやつ)が だったのが観測後は になっていて、精度が大きく

    雑記: 分散共分散行列のベイズ更新の話 - クッキーの日記
    disassembler
    disassembler 2022/09/23
    この記事の凄さ
  • 周辺化と周辺分布 — 同時分布から個別変数の確率を取り出す数学的操作 | 機械学習と情報技術

    表の中央の4セル × 3行 = 6つの値が同時分布 $p(x, y)$、右端の列が $p(x) = \sum_y p(x,y)$ の周辺、下端の行が $p(y) = \sum_x p(x,y)$ の周辺です。これがまさに「表の余白に現れる確率」 = 周辺確率。すべての値を足し上げると全確率 1.0 になることも確認できます。 ここで重要な注意点があります。周辺分布だけを見ても、変数間の依存関係はわかりません。たとえば $p(\text{Instagram}) = 0.35$、$p(\text{女}) = 0.60$ という事実から「女性のうち Instagram ユーザの割合」を逆算することはできません。それを計算するには条件付き確率 $$ p(\text{Instagram} \mid \text{女}) = \frac{p(\text{Instagram}, \text{女})}{p(

    周辺化と周辺分布 — 同時分布から個別変数の確率を取り出す数学的操作 | 機械学習と情報技術
    disassembler
    disassembler 2022/09/23
    地味に役立つ。忘れがちだけど。確率変数における周辺化や周辺分布について
  • 【ロードマップ】ゼロから理解するカルマンフィルタ | 機械学習と情報技術

    【ロードマップ】ゼロから理解するカルマンフィルタ Posted: 2022/09/14, Category: カルマンフィルタ , ベイズ統計 , ロードマップ , 制御工学 , 機械学習 , 統計学 ゼロから理解するロードマップシリーズ、第一弾は「ゼロから理解するカルマンフィルタ 」です。 ゼロから理解するシリーズでは、知識ゼロから目的のアルゴリズムや手法を理解することを通して、同時にそのアルゴリズムの導出に使っている数学やプログラミングの基礎を全て身につけてしまおうとする、大変欲張りな企画です。 数学やプログララミングなどの実力をつける際には、基参考書や教科書的なものを用いて、基礎からゆっくり理解していく方法と、ある特定の目的を達成するために必要な必要な数学や別の低級な概念について逐一理解していく方法があると思います。 前者は、挫折しないように、逐次丁寧に必要な概念が懇切丁寧に説明さ

    【ロードマップ】ゼロから理解するカルマンフィルタ | 機械学習と情報技術
    disassembler
    disassembler 2022/09/14
    ゼロからカルマンフィルタ を理解する