ころがる狸

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

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

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

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

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

【生成モデル】正規化フローでMNISTの画像生成

こんにちは。育児のため時間がとれずブログ更新を1年放置していました。今後はしっかりと勉強時間を確保して、記事執筆を頑張っていきたいと思います!さて、今回は機械学習分野でもっとも注目を集めている技術の1つである生成モデルを取り上げます。生成モ…

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

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

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

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

【分子可視化ツール】VMDのインストールと基本的な使い方

材料や創薬は歴史のある学問ですが、機械学習技術はこれらの分野にも適用され今もなお大きく進化しています。もともとシミュレーションが活発な分野なので、材料・創薬分野の機械学習エンジニアを目指すならそれらの知識も必須です(例えば第一原理計算、分…

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

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

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

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

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

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

【Streamlit】株価データのお手軽GUI分析

手元のデータを簡単に分析するためのツールが欲しいと思うことはありませんか?既存の解析ツールでは手の届かない細かい機能を簡単に実装できれば、ちょっとしたビジネスインテリジェンス(BI)ツールや株式運用ツールとして役立ちそうです。Pythonを使った…

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

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

【PostgreSQL】windows10でPostgreSQLを動かすエラー対処法

春はあけぼの、夏のデータベースと言います。というわけで、今回はWindows10環境でRDBMS(relational database management system)の1つであるPostgreSQLを動かす際に遭遇するエラーメッセージの解決策を簡単にまとめます。Windows10へのインストールと環境…

【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×転移学習】学習済みモデルライブラリTIMMのご紹介

こんにちは、dajiroです。今回は高精度な画像分類を行うのに便利なライブラリTIMMをご紹介します。PyTorchでは画像分類用の学習済みモデルが公式で提供されていますが、使われているモデルがやや古く栄枯盛衰の激しい機械学習の世界では現代最高レベルの予測…

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

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

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

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

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

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

20代最後の日。

こんにちは、Dajiroです。今日2020年6月19日は私にとって20代最後の日です。だからといって何か特別なこともしていないのですが、記念に日記を書くことにしました。日記を書くというのは、ふだんの日常の中ですごく特別な行為で、何かもやもやしたり、思考を…

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

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

【Matplotlib】棒グラフの数値挿入と軸ラベルの調整

こんにちは。6月に入りさっそく蒸し暑い日が続いています。そろそろエアコンをつけても良い時期ですね。今回はMatplotlibの棒グラフの制御方法に関して紹介します。 はじめに 棒グラフへの数値の挿入 軸ラベルの調整 グラデーションの追加 はじめに 本ブログ…

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

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

【Python】生産性を上げる、簡単便利なPythonテクニック9個

こんばんは。今日は雨が降り外が涼しいです。そろそろ東京にも梅雨入りの季節が近づいてきたでしょうか。2020年の夏も間近です。 ==================================== 本記事では、私が良く使うPythonの簡単で便利な9個のテクニックをご紹介します。基礎的…

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

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

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

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

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

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

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

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

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

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

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

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