化学系エンジニアがAIを学ぶ

PyTorchでディープラーニング、強化学習を学び、主に化学工学の問題に取り組みます

PyTorch

CNN(Convolutional Neural Network)を用いた画像識別の簡単な例

はじめに CNNによる画像識別の簡単な例として、下記の波形図の1つ目のピークが高いか2つ目のピークが高いかの識別をPyTorchを使って試みる。 データの準備 画像をCNNで使える配列の形に変換する方法はいくつかあると思うが、ここではpillowを用いた。波形の…

Chainer 開発終了

Chainerが開発終了の模様です。 tech.nikkeibp.co.jp こういうことがあるのでフレームワークや言語選びは悩みますね。 はじめはChainerを使おうとしていたのですが、PyTorchにしておいてひとまず良かったようです。

ディープラーニングによる化学プラントの異常検知の簡単な例題

はじめに 例えば連続で運転し化学品を製造するプラントにおいて、何らかの原因で反応温度や圧力が異常に上昇したり、製品中の不純物が増加するなどして運転が継続できず、プラント停止を余儀なくされることがある。この場合、プラント設備の復旧や製品在庫管…

深層強化学習の簡単な例 〜Double DQN適用〜

はじめに 以前の記事で簡単な問題を対象にDQN、Experience Replayを適用してみたが、今回はさらにDouble DQNを追加してみる。なお下記サイトを参考にした。 Let’s make a DQN: Double Learning and Prioritized Experience Replay – ヤロミル https://www.re…

メモ: PyTorch 重み、バイアスの初期化について

はじめに PyTorchのニューラルネットワークの重み・バイアスの初期化についてのメモを記す。 重み 重みの内容は次のようにして確認できる。 >>> import torch.nn as nn >>> l = nn.Linear(1, 3) >>> l.weight Parameter containing: tensor([[ 0.6204], [-0.…

深層強化学習(Deep Q Network, DQN)の簡単な例 〜Experience Replay追加〜

はじめに 前回の記事でOpenAI Gymを使わず非常に簡単な問題を対象にDQNを適用してみたが、"Experience Replay"を入れていなかった。今回は前回の問題にExperience Replayを追加してみる。なおこれを実施するにあたり、下記サイトを参考にした。 第15回 CartP…

深層強化学習(Deep Q Network, DQN)の簡単な例

はじめに DQNを学ぼうとして色々と調べたが、どこもかしこもOpenAI Gymを使っていて、まずそれの扱いから考えないといけないのでつらい。ここではOpenAI Gymを使わず、非常に簡単な問題を対象にDQNを適用してみることとする。Python、PyTorchを用いる。 また…

メモ: PyTorch tensor requires_gradのTrue/False確認、切り替え

requires_gradのTrue/False確認 属性 requires_gradを参照して確認できる。 import torch a = torch.tensor([0, 1], dtype=torch.float32) b = torch.tensor([2, 3], dtype=torch.float32, requires_grad=True) a.requires_grad b.requires_grad 実行結果 Fa…

メモ: PyTorchの自動微分について

はじめに PyTorchの自動微分についてのメモを記す。 自動微分 アルゴリズムによって定義された関数からその関数の偏導関数値を計算するアルゴリズムを導出するための技術。 数値微分や数式微分とも異なる方法で、これら方法の問題点(誤差や桁落ちによる精度…

ニューラルネットワークによる手書き数字の認識

はじめに scikit-learnライブラリに含まれる手書き数字データを用いて、ニューラルネットワークによる 手書き数字認識をやってみる。 データの準備 手書き数字データはサイズ 8 x 8で、グレースケールの階調が17段階となっている。具体的な手書き数字画像は …

ニューラルネットワークによるばらつきのあるデータへの近似

はじめに 前回は関数値そのものを学習させたが、今回は関数値をもとに作成したばらつきのあるデータを学習させて 関数をニューラルネットワークで表現できるかを見てみる。 以下の記事で同様の内容がtensorflowを用いて紹介されているが、 ここではPyTorchを…

メモ: PyTorch TensorDataset、DataLoader について

はじめに PyTorchのtorch.utils.data.TensorDataset、torch.utils.data.DataLoaderの使い方についてのメモを記す。 torch.utils.data.TensorDataset 同じ要素数の2つのtensorを渡し、その組を得る。 import numpy import torch import torch.utils.data x = …

ニューラルネットワークによる関数近似

はじめに PyTorchを用いてニューラルネットワークで関数近似を行うプログラムを作成する。 必要なモジュールのインポート 必ずしも必要でないが、ここではtorch.utils.dataをインポートしtorch.utils.data.TensorDataset、torch.utils.data.DataLoaderを 用…

ニューラルネットワークで論理演算子 OR を学習する

はじめに 業務にて深層強化学習の利用を目指す。まずは簡単な例からということで、PyTorchを用いてニューラルネットワークで論理演算子 OR を学習するプログラムを作成する。 論理演算子 OR のモデル 0または1を持つ2つの入力x1, x2の少なくとも一方が1であ…