独学でプログラミングとかやってみる 〜ITとかの勉強レポート〜

ボクが勉強したプログラミングやIT関連の情報を記事にしていきます。機械学習や深層学習なども取り扱います。

MacでC++をコンパイルする

C++

調べて忘れるのももったいないので、 メモとして記載します。 g++を使ってコンパイルを行います。 ターミナルに $gcc --help と入力して一覧が出てくれば準備は整っています。 例えば、「main.cpp」というファイルをコンパイルするには、 #a.outというファイ…

PythonでOpenCVを使ってみた

画像を開く、保存する import cv2 img = cv2.imread("画像ファイルPath") cv2.imwrite("保存ファイルPath", img) 動画を開く、保存する import cv2 video = cv2.VideoCapture("動画ファイルPath") if cap.isOpened() == False: sys.exit() ret, frame = cap.…

フルスクラッチで単回帰分析をやってみる

機械学習の理解を深める Pythonにはsklearnという便利な機械学習ライブラリがあります。 ただ、内部の計算に触れることは大事だと思うのです。 というわけで今回は単回帰分析をsklearnを使わずに実装します。 計算の準備 計算式の確認をします。 単回帰なの…

TensorFlowでMNISTを使ってみる

今回やったこと TensorFlowのチュートリアルを今回やってみました。 MNISTというかなり有名な数字画像の識別問題をやってみます。 どうやったか? チュートリアルに倣ってsoftmaxと勾配降下法を使いました。 ミニバッチでランダムにサンプルを選んで学習させ…

DeepQ-NetworkでOpenAI Gymに挑戦!

DeepQ-Networkとは 一言で言うと多層のQネットワークです。 Qネットワークに隠れ層を追加して多層化したもので、 今回はExperience Replayというアルゴリズムを使って実装していきます。 メモリにステート、アクション、次のステート、次のアクションを記録…

Q-NetworkでOpenAI Gymに挑戦!

Q-Networkに挑戦してみる 強化学習のQ-NetworkでOpenAI Gymのフローズンレイクに挑戦します。 目標は前回までのQラーニングよりさらにゲームが上手いAIを作ることです。 Q-Networkについて簡単に説明しておきます。 ステートと重みをかけ合わせてQ値を求めま…

OpenAI Gymで強化学習!

ベルマン方程式 前回の続きです。 OpenAI GymのFrozenLake-v0を攻略して行きます。 Qテーブルを更新するのにベルマン方程式を使うので、 まずはベルマン方程式についてお話しします。 Q(s,a) = r + γ(max(Q(s',a'))) Q:行動価値関数 s:state a,:action r…

OpenAI Gymで強化学習をやってみる

FrozenLake-v0に挑戦! フローズンレイクというToy Textゲームに挑戦することにしたよ。 どういうゲームかというのはOpenAIの公式リンクを貼っておくので見て欲しいと思う。 gym.openai.com 簡単にボクからも説明しておく。 まず4×4マスのフィールドをスタ…