技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

マジで駄文。ボウリングのスコア計算

ボウリングのスコア計算ってどういうルールなんだろう? と思って調べてみた。 スコアの付け方 なるほどそういうルールだったのか…興味ないから今まで知らんかった(汗 ストライク = 10 点+次の 2 投分 スペア = 10 点 + 次の 1 投分 ストライクは次の 2 投…

WSL に Salesforce 開発環境を作る

「汚さず」というのはWindowsのPATHとか常駐とか増やしたくないのです。 で、どういう事かというと WSL2 に Ubuntu 突っ込んで、そこに sfdx をセットアップするという方向。 なぜセットアップかって?メインマシンに SFDX 入れてなかったからさ! WSL2 イン…

畳み込み層を実装してみる

white-azalea.hatenablog.jp この辺の続き。 畳み込み層とプーリング層、ひいては CNN をしてみる。 前回の im2col 連中を、バッチサイズ/チャンネルとか踏まえて再実装。 超長いので、今回はここから続きを読むリンク…。

画像を行列で処理する前準備

CNN で特徴的な動作に畳み込みっちゅう処理がある。 画像には局所性(隣接するピクセルの影響を受ける事)があるので、それを利用して画像の特徴を強調したりできる。 やってることはフィルタを用意して、画像に畳み込み計算を行う事。 以下の例みたいに、左…

過学習対策あれこれ

white-azalea.hatenablog.jp 前回わざと過学習させてみたわけだが、そもそも学習の打ち切りはやたらと難しいハズだ。 あの時はデータセットが 200 位しかないし、ニューロンの数も限られていたといえる。 しかし、現実には大量のデータセットがあるだろうし…

多層ニューラルネットで過学習させてみる

実際過学習がどの程度影響するのかを検証してみる。 ニューロンのひな型は このへん で作ったものを流用。 import numpy as np wb_width = 0.1 # 重みとバイアスの広がり方 eta = 0.01 # 学習係数 class Neuron: def __init__(self, n_upper, n, activation_…

ニューラルネットの弱点

過学習 現在のデータセットに過度に最適化されすぎて、未知のデータに対処できなくなる問題。 これはニューラルネットに限った話でもない。 同一のデータセットを学習させ続けることでも起きるが、ニューラルネットの場合以下のケースがある。 少ないデータ…

JavaScript でニューラルネットを実行

前回のニューラルネットの分類で、アヤメの判別を実装しました。 white-azalea.hatenablog.jp この学習データを JavaScript に持って行って動かそうとしたのが今回。 学習データを取り出そう ニューロンの学習した重みとバイアスを JSON 化して取り出すよう…

自作ニューラルネット(分類型)を作って、色々やってみる

今度は分類問題に対応した NN 実装を考える。 とはいえ、テンプレは 前回記事 で作ってるので、さっくり定義する import numpy as np import matplotlib.pyplot as plt %matplotlib inline wb_width = 0.01 # 重みバイアスの広がり方 epoch = 101 # 学習デー…

ニューラルネット実装

今回やったこと: 入力: 正弦波( )を学習させて、-1 - 1 までの整数食わしたら を返す 中間層: シグモイド関数(3 個) 出力層: 恒等関数 損失関数: 二乗和誤差 最適化アルゴリズム: 勾配降下法 バッチサイズ: 1 で実装する。 まずは学習データその他 import…

ニューラルネットワーク各階層の勾配計算式

勾配計算式 を重み、 をバイアス、 を誤差(損失関数出力)とするとこんな形状で定式化されてる。 この辺はいくつかの書籍見て、ようやっと飲み込めた感じ…。 数式を飲み込むのにはそれなりに時間を要したけど…。 出力層 中間層 結局のところ、 さえ算出できれ…

ニューラルネットの形状に関して

エポックとバッチ 1エポック = 全データを 1 回学習すること。 教師データのセット単位を 1 バッチ。 1 エポック = 複数バッチ バッチ学習 バッチサイズ = エポックサイズ の学習のこと。 学習が安定してて高速ではあるが、局所解にハマりやすい。 オンライ…

最適化アルゴリズム

と言っても機械学習的な意味で。 単純に勾配降下法を適用すると、局所解に捕まる問題は先に述べた通り。 分かりやすくサンプルを考えてみると import numpy as np import matplotlib.pyplot as plt def func(x): return x*x*x*x + 2*x*x*x + -38*x*x + 2*x X…

Mac から乗り換えた:ASUS UF Dash F15 FX516PR

乗り換えて 1 週間使ったので、レビューを。 乗り換えたのはコレ。 ASUSTek ゲーミングノートパソコン TUF Dash F15 FX516PR(Core i7-11370H/16GB・1TB/RTX 3070/1,920×1,080ドット (フルHD) (240Hz)/15.6インチ/日本語キーボード/Wifi6/ムーンライトホワイ…

ニューロンの定義と、重み/バイアスの影響

ということで、ニューロンの定義とその重みやバイアスでどう影響するのかを見てみる。 影響の方向性を確認するけども、目的としては重みとバイアスで出力って変わるんだなーって理解すること。 ニューロンに使う関数 シグモイド関数は前回の通り。 まぁ 0 以…

ReLU 関数とその派生

前回記事の続き。 white-azalea.hatenablog.jp ReLU に関して深掘りして調べてみた。 ReLU は DeepNeuralNetwork に使われる…という知識はあったのだけど、調べてみると関連する活性関数が沢山あった。 ReLU これは分かりやすい import numpy as np def relu…

在宅になってから大分お世話になってるもの

まさにただの日記。 在宅になってから買ったもので、重宝しているものを以下に列挙する。 マグカップウォーマー 買ったのはコレ。 加熱部分が平たい形状をしているので、底が平らなカップならそのまま利用可能。 窪んでる形状なら、そこにアルミホイルを固め…

ニューラルネットワーク周りの関数

具体的には活性関数と呼ばれる連中。 これは入力を受けて結果を応答する関数。 調べてみると結構いっぱいある。 ステップ関数 0 基準で 0 か 1 かという単純なもの。 in python import numpy as np import matplotlib as mpl import matplotlib.pyplot as pl…

統計のメモ

正規分布 統計つっても正規分布に関するもの。 正規分布はガウス分布ともいわれてる。 bellcurve.jp この辺が分かりやすいはず。 要するに、平均値を中心(かつ最大出現数)に対象に見えるデータ分布をガウス分布と呼んでる。 例えば平均点 65 点で、標準偏…

微分のおさらい

つっても公式だけ。 証明することが重要なのではなくて、名前と概念を一致させることが最も重要と想定。 というのも、AI系の数学眺めて一番困るケースが なんでそうなるの?→公式の知識不足 説明の意味が分からない→単語の持ってる概念が分かってない 用語の…

行列操作周りのメモ

ニューラルネットワーク周りが行列だらけなので。 そして僕は数式では理解できず、コードで理解する人なのでメモ(汗 スカラー といっても、基本的には単独の値を意味する a = 1 b = 1.5 c = 1.2e5 ベクトル(一次テンソル) スカラを直線状に並べたもの≒一次…

全幅探索アルゴリズム

お題はこれ プログラマを育てる脳トレパズル 遊んでおぼえるPythonプログラミング&アルゴリズム作者:増井 敏克発売日: 2020/12/22メディア: 単行本(ソフトカバー) 相変わらず問題だけ読んで、答えの処理を見ずに書いてみた系。 # 9=壁, 1=goal, 0=道 maze …

Python3 でマルバツゲームを自分ならどう書くだろう?

お題 プログラマを育てる脳トレパズル 遊んでおぼえるPythonプログラミング&アルゴリズム作者:増井 敏克発売日: 2020/12/22メディア: Kindle版 一番最初の課題:三目並べ(マルバツゲームとも TicTacToe ともいう)の実装。 自分ならどう解くか? というこ…

ADコンバータ MCP3208 で可変抵抗の値を読み取ってみる

やったこと 可変抵抗を操作したときの抵抗の値をリアルタイムに読み取る。 使ったもの Raspberry Pi 4 OS: Raspbian GNU/Linux 10 デバイスはこちら 12bit 8ch ADコンバータ MCP3208−CI/P: 半導体 秋月電子通商-電子部品・ネット通販 …

ラズパイで音楽を鳴らせ

環境 RaspberryPi 4 OS: Raspbian GNU/Linux 10 やったこと といってもこれだけ $ sudo apt install mplayer そして適当に mp3 ダウンロードしたら フリーのBGMと動画やゲーム用音楽素材[Wave,MP3] $ mplayer menuettm.mp3 と指定してやるだけ。 出力は HDMI…

Docker + CakePHP4.2 + VSCode でデバッグサーバに接続する

日中そういうことにドハマリしたので、日々の勉強がてらやってみて成功したのでメモしてみる。 Docker version 20.10.2, build 2291f61 PHP 7.4.14 CakePHP 4.2 pecl/xdebug version 3.0.2 ということで、上記バージョン以外ではどうかは保証外。 ディレクト…

CakePHP4.2 で Http get する

記事の本質は、「オープンソースならコードよんじゃえ♪」でオナシャス! といっても、それだけ言えば公式ドキュメント見れば即終了する。 book.cakephp.org use Cake\Http\Client; $http = new Client(); $response = $http->get('http://example.com/search…

Github の git アクセスを維持するために ssh 鍵認証

なぜ? Github は公式に、Git アクセスのパスワード認証を停止していくと宣言したためです。 github.blog 曰く 2021/8/13 にパスワード認証を廃止するとの事です。 August 13, 2021 – Token (or SSH key) authentication will be required for all authentic…

Laravel 開発環境をDockerで

久々にPHP 使うお仕事になったついで。 PHP で非常に人気のある Laravel の開発環境を用意したいと思った。(※注意:リリース環境ではありません) XAMPP とかクソくらえ! ちょっと暴論ではあるのだけど、自分は XMPP が気に入らない。 理由は非常に明白で …

Raspberry Pi 4 で LED + スイッチ点灯

基本から行くべきだよねってことでやってみた。 作ったのはこいつ スイッチで LED の On/Off するだけの実装です。 ラズパイの IO これは公式に落ちているものを拝借する。 gpiozero.readthedocs.io 使用しているライブラリはこれなので、まずはこのレイアウ…