ころがる狸

ころがる狸のデータ解析ブログ

機械学習

スコアベース拡散モデルの概要

こんにちは。前回に引き続き、拡散モデルに関する話題を取り上げます。拡散モデルとはGoogleのImagen等に活用されている話題の生成モデルであり、一部のタスクでは最も研究が進んでいる生成モデルGAN(敵対的生成ネットワーク)の最高性能を上回ることが報告…

【エネルギーベースモデル】EBMの仕組みと拡散モデルとのつながり

こんにちは。今回は、深層学習における生成モデルの1つであるエネルギーベースモデル(EBM)について解説します。EBMは深層学習のブレイク以前からある伝統的な技術ですが、最近Googleが発表したImagen等の超高精度生成モデルで使われる拡散モデルと深い関…

【gMLP解説】イラストで理解する最新の機械学習モデルgMLPの仕組み

ここ数年、機械学習分野では自己注意(self-attention)と呼ばれる仕組みに基づいた学習モデルが様々なアプリケーションに適用され、その性能・汎用性の高さから大きな注目を集めていました。代表的なモデルがTransformerと呼ばれるもので確固たる地位を築いて…

【PyTorch+Numpy】Dataloaderに潜むありがちなバグ

PyTorchは素晴らしい機械学習フレームワークですが、データ読み込みに使うDatasetとNumpyによる乱数発生の組み合わせは思わぬバグの発生源となっているようです。2021年4月10日に投稿されたこちらの記事がTwitter上で話題になっています。 tanelp.github.io …

【EfficientNetV2】軽量・高精度な最新の画像認識モデルを解説!

機械学習を使った画像認識モデルの進化が止まりません。2019年以降に絞ってみても、EfficientNet, Big Transfer, Vision Transformerなど数多くのモデルが提案され、当時最高の予測精度が報告されてきました。そして最近になり注目を集めているのが、従来手…

【FastAPI】csvデータを取得可能なWebAPIの実装!

ビッグデータに基づいた研究開発やビジネスは現代において珍しくありません。そんな中重要視されるのが、簡単にデータを取得できる仕組み【WebAPI】です。WebAPI(Web Application Programming Interface)はプログラムによってWeb上のデータベースから容易…

一次元畳み込みニューラルネットワークとハイパラ探索

機械学習の分野で最も有名なモデルに畳み込みニューラルネットワーク(CNN)と呼ばれるものがあります。2012年にCNNが画像認識処理において卓越した性能を示したことで科学や生活の在り方は大きく変わりました。この手法は画像(2次元データ)のみならず波形…

【SAM】最新オプティマイザーで画像分類の精度検証!

みなさんご無沙汰しております、Dajiroです。久しぶりのブログ投稿です。ここ半年ほど、データベースやAPI、AWSの勉強で忙しかったのですが、ようやく機械学習に帰ってこれました。今回の記事では、最新のオプティマイザであるSAM(sharpness aware minimizat…

【PyTorch×TPU】Google ColabでPyTorchを使ってみた

こんばんは、Dajiroです。今回はGoogle Colabratory(以下、Colab)におけるPyTorchの使い方についてご紹介します。ColabといえばGoogle社が無料で提供しているノートブック形式のPython計算環境です。通常のCPUに加え、GPUとTPUといった機械学習向けの計算環…

【Cycle GAN】GANによるスタイル変換の仕組み解説と実験

こんにちは、Dajiroです。今回は、GANを用いて画像のスタイルを変換できる【CycleGAN】の仕組みをご紹介します。スタイル変換とは、元の画像から別のスタイルの画像に変換できることを指します。6つの損失関数が登場するため中々複雑なモデルですが、1つ1つ…

【Conditional GAN】仕組み解説と画像生成の結果

こんにちは、Dajiroです。今回の記事では【ConditionalGAN】(条件付きGAN, CGAN)についてご紹介します。GANという機械学習技術を用いることで乱数から画像を自動生成できますが、CGANを用いるとどのような画像を生成するか条件付きで指定することができるよ…

【PyTorch】多入力多出力モデルの作り方

こんにちは、Dajiroです。今回は、PyTorchを使った複雑なネットワークの構築についてご紹介します。機械学習モデルを組んでいると、複数の種類の入力(画像と1次元配列状のデータなど)を使ったり、複数の種類の出力を得たい場合などがあります。そんなとき…

【CNN+Grad-CAM】仕組みの解説と画像の予測根拠可視化

こんばんは、Dajiroです。本ブログでは既に画像を予測する方法を学びましたが、今回はCNNによる画像予測の根拠についてご紹介します。その代表的な技術である(Guided) Grad-CAMについての仕組み解説と、実際に得られた予測根拠を見ていきます。画像認識につ…

【自然言語処理】単語埋め込みからSelf-Attention、2値分類まで。

こんにちは、Dajiroです。前回の技術記事を書いてからだいぶ日が空きました。本ブログでは機械学習に関する幅広い技術を解説しようと目論んでいるので、まだ扱ったことのない自然言語処理のネタををじっくりコトコト仕込んでいました。本記事では 単語埋め込…

【pytorch-pfn-extras+Ignite】画像分類のワークフロー解説

こんにちは、dajiroです。今日はPyTorchによる画像分類(CNN)に取り組んでみたいと思います。CNNの仕組み・実装方法に関してはウェブ上に十分な資料があると思うので、ここではPyTorchの学習部分を簡単に実装できるIgniteとpytorch-pfn-extrasいうライブラリ…

【半教師ありGAN】GANによるデータ拡張とMNISTの画像分類

こんにちは。2020年の上半期も終わりそうです。時間が経つのは本当に早いですね。個人的には、ブログをとにかく書きまくった半年でした。 それでは、本日の記事の紹介です! はじめに 半教師ありGANの仕組み 分類器の訓練 生成器の訓練 実装(省略) 実験結…

【機械学習+分子設計】分子生成モデルの主要トレンド

こんばんは。今日は材料科学・創薬分野で近年話題となっている機械学習を使った逆分子設計についてまとめてみたいと思います。逆分子設計というと、最初に望ましい機能を定義し、それに見合った材料を探索するという→の設計方針を指します。機械学習分野では…

【DCGAN vs GAN】MNISTの生成画像比較と実装のコツ

こんにちは。先日、多層パーセプトロンモデルを使ったGAN(敵対的生成ネットワーク)で画像生成を行いました。しかし機械学習で画像と言えば、畳み込みニューラルネットワーク(CNN)ですよね。とうわけで生成器・識別器にCNNと転置CNNを使って効率的に画像を学…

【GAN + PyTorch】仕組みの解説とMNISTで画像生成

こんにちは。今日は敵対的生成ネットワーク(Generative Adversarial Network, GAN)を取り上げます。GANというと、適当な乱数から本物そっくりの画像を生成する技術として既にご存じかもしれません。画像以外にも物理モデルの生成や、化合物の構造生成などに…

【強化学習】方策勾配法の仕組みと学習のワークフロー

こんばんは。今日のテーマは方策勾配法です。前回の記事では強化学習の基礎から深層強化学習(DQN)までを扱いました。そこでは状態や行動の価値Qの見積もりをいかにして最適化するかという考え方が根底にありましたが、方策勾配法では価値ではなくエージェ…

【深層強化学習(DQN)】Q値で分かる深層強化学習

こんにちは。今日は、強化学習に関する入門記事を書きたいと思います。強化学習はニューラルネットワークとはまた違うノウハウがあり、腑に落ちるレベルでの理解をするのがなかなか難しい技術だと思います。実際、私は昨年初めて強化学習の勉強をしましたが…

【グラフ畳み込みニューラルネット解説】初心者向けの学習ポイント

こんにちは。今日はグラフ畳み込みニューラルネットワーク(GCN)を理解するための学習のポイントについて取り上げたいと思います。GCNは近年猛烈な勢いで開発が進められている技術で、大きな注目を集めている・・・ということを既に知っている読者の方は多…

【Graph Attention Networks解説】実装から読み解くGAT

こんにちは。機械学習の適用先としては、自然言語処理、画像解析、時系列解析など幅広い分野があるわけですが、今日はグラフ構造に対する機械学習モデルを紹介したいと思います。グラフで表現出るものは多く、例えば人間関係だとか、論文の引用・被引用関係…

【機械学習+材料科学】PyTorchとpymatgenによる物性予測入門

こんばんは。今日は、材料データベースを使った機械学習による物性予測をやってみたいと思います。いわゆるマテリアルズインフォマティクスと呼ばれる分野の話題です。既にQiitaなどを見るとランダムフォレストなどの手法を用いた実例があるわけですが、本稿…

【PyTorch+LSTM】LSTMの仕組みと米国株予測の実装

おはようございます。ゴールデンウイーク最終日です。連休中に時系列データ解析を中心に記事を書き、ARIMAモデル、状態空間モデル、次元圧縮、人口推移の可視化、そして本稿のPyTorchによるLSTMの紹介記事をまとめました。今日このトピックを取り上げた理由…

【次元削減】株価を二次元に埋め込んでみた(tsne,PCA,MDS)

こんにちは。ゴールデンウィーク2日目の日曜日の昼下がりです。データ解析をしつつ、外に出れない分どうぶつの森で散歩しています・・・ こちらが本日の記事の目次です。時間のない方は結果(差分化あり)だけご覧ください。次元圧縮すると米国株がセクター…

【python+株価+statsmodel】ARIMAモデルでダウ平均株価を解析してみた

こんにちは。ゴールデンウィーク始まりましたね。とりあえずこの5日間は、機械学習・統計解析の勉強をしつつどうぶつの森で島を開拓する予定でいます! ・・・・・・・・・ 今日はpythonで時系列データの解析を行いたいと思います。時系列データというと株…

【マテリアルズインフォマティクス】主要技術一覧

こんにちは。今日は材料と情報科学の融合領域の話題を取り上げたいと思います。材料科学の世界でも機械学習技術の活用は大きく進展しており、このような科学分野を一般にマテリアルズインフォマティクスと総称します。特定の技術のことを指すのではなく、技…

【機械学習+外挿】機械学習モデルで外挿してみた

こんばんは。今日も機械学習を使った実験です。一般に機械学習は内挿は得意ですが外挿は苦手だと言います。というわけで、sin関数の一部を学習させ、外挿するとどうなるのかを実験して確かめることにしました。予測誤差を出力できるガウス過程回帰に加えて、…

【ガウス過程回帰】カーネルの紹介とボストン住宅価格予測

こんばんは。最近、ガウス過程回帰(Gaussian Process Regression, GPR)なる技術を勉強する機会がありました。誤差付きで予測できる便利な技術、と理解していますがGPRとニューラルネットワーク(NN)はどちらが予測精度が高いの?という素朴な疑問があった…