無限不可能性ドライブ

『ニューラルネットワーク自作入門』に刺激されてExcelVBAでニューラルネットワークを作ってみたものの、やっぱり数学やらなきゃと思い少しずつやってきたのもあって、自分の知識の整理とかそういった感じです。

年賀クイズの答え

今回はそれほど面倒な計算もなかったので、地道に計算すればできたかな?と思います。 Excelとかを使う場合の計算式の例もあげておきますね。というわけで、答えは「にしんほう」、二進法でした!「ねぇ、そのうち二進法で話するのも面白いんじゃない?」MOS…

あけましておめでとうございます

解答は 1/15(日)あたりに載せる予定です。

2022年に書いた記事など…

2022年に書いた記事をまとめておこうと思いますー。 NeuralNetwork on Scratch Scratch で作ったニューラルネットワークです。 ミニバッチにも対応しています。 手書きの文字や図形をちゃんと学習し、認識できるようになります。 Scratch のプロジェクトは公…

年賀クイズの答え

youtu.beということで、答えは「VOICEROID」でした! 昨年、VOICEROIDを購入したのですが、キャラクタに声がつくだけでこんなに身近に感じられるようになるのか!と結構衝撃的でした。 ということで、今回のワードは「VOICEROID」にしました。他にもこんなこ…

あけましておめでとうございます

解答は 1/15(土)あたりに載せる予定です。解答を公開しました。 celaeno42.hatenablog.com

【VBA】リネームする

VBA

面白そうだったのでチャレンジしてみました。暇なVBAerに課題置いておきます。a列のファイル名を、ランダムに並び替えた結果をb列に出力した後、aからbのファイル名に一括変更するマクロを書いてみてください。さらに、変更後にミスを発見したときの為に、元…

【VBA】文字色やセル色に文字を埋め込む(抽出編)

VBA

Public Sub 文字列を抽出する() Dim txt As String Dim r As Long Dim lngRGB As Long r = 1 txt = "" Do txt = txt & decodeChar(Cells(r, 1).Font.Color) txt = txt & decodeChar(Cells(r, 1).Interior.Color) r = r + 1 Loop Until Cells(r, 1).Font.Colo…

【VBA】文字色やセル色に文字を埋め込む(埋め込み編)

VBA

Option Explicit Public Sub 文字列を埋め込む() Dim txt As String Dim ch As String Dim i As Long, r As Long Dim lngR As Long, lngG As Long, lngB As Long Dim sw As Long Dim ascCode As Long txt = "Hello" & vbNewLine & "World !" r = 1 Columns(1…

【VBA】2進数を文字列に変換する(前回の続き)

VBA

Option Explicit Public Sub 読み込んだ2進数を文字列に変換() Dim filePath As String Dim fileNo As Long Dim txt As String Dim txts() As String Dim i As Long filePath = ThisWorkbook.Path & "\binary.dat" fileNo = FreeFile Open filePath For Inpu…

【VBA】文字列を2進数に変換してファイル保存する

VBA

Option Explicit Public Sub 文字列を2進数に変換して保存() Dim filePath As String Dim fileNo As Long Dim txt As String txt = "userid" & vbCrLf & "password" txt = encode(txt) filePath = ThisWorkbook.Path & "\binary.dat" fileNo = FreeFile Open…

【VBA】パスワードを生成する

VBA

Option Explicit 'セルに表示させるときは一文字目が = だと 'エラーになるので注意 Public Sub パスワード生成() Debug.Print createPassword(8) End Sub Private Function createPassword(ByRef pwLength As Long) As String Dim asciiCode As Long Dim pw…

【VBA】パスワードをハッシュ化する

VBA

Option Explicit Public Sub ハッシュ値取得() Dim pw As String Dim hash As String Dim filePath As String Dim fso As Object Range("B1").Clear pw = Range("A1").Value If pw = "" Then Exit Sub End If 'パスワードを書き込んだテキストファイルを生成…

(お題)式を解析して導関数を求める

VBA

面白そうなお題があったので挑戦。お待たせしました!今回は初出題ということで、まずは私が好きなテーマで!スキルアップできそうな問題は次から載せていきます!!VBAで解決してくださいね。お題:「y = 5x^3 + 2x^2 + 7x + 5」の導関数を求めろ!文字列解…

【VBA】文字を隠したいならセルの色に埋め込んじゃえばいいじゃない…

VBA

!!ノンプロ研企画アドベントカレンダー!! こちらは私が所属しているコミュニティ「ノンプログラマーのためのスキルアップ研究会」通称「ノンプロ研」の年末特別企画、ノンプロ研 Advent Calendar 2019 の17日目の記事として投稿しています。 adventar.or…

【VBA編】ニューラルネットワーク(マクロの登録)

マクロの登録 各ボタンにマクロを登録します。 ボタン プロシージャ名 データ読み込み Click_データ読み込み 重みクリア Click_学習状況クリア 学習開始 Click_学習開始 テスト開始 Click_テスト開始 データ読み込み C2セル、C3セルをダブルクリックして、デ…

【VBA編】ニューラルネットワーク(mdlSupervisor)

スーパーバイザ メインの処理となるモジュールです。 '[mdlSupervisor - 標準モジュール] Option Explicit Option Base 1 Dim mcInLayer As classInputLayer Dim mcHLayer1 As classHiddenLayer Dim mcHLayer2 As classHiddenLayer Dim mcOutLayer As classO…

【VBA編】ニューラルネットワーク(classOutputLayer)

出力層クラス 出力層のユニットを管理するクラスです。 '[classOutputLayer - 出力層クラス] Option Explicit Option Base 1 Dim mUnitList() As classUnit 'ユニット格納用リスト Dim mUnitCount As Long '自レイヤーのユニット数 Dim mAct As Long '活性関…

【VBA編】ニューラルネットワーク(classHiddenLayer)

隠れ層 隠れ層のユニットを管理するクラスです。 '[classHiddenLayer - 隠れ層クラス] Option Explicit Option Base 1 Dim mUnitList() As classUnit 'ユニット格納用リスト Dim mUnitCount As Long '自レイヤーのユニット数 Dim mAct As Long '活性関数の種…

【VBA編】ニューラルネットワーク(classInputLayer)

入力層のユニット管理 入力層のユニットを管理するためのクラスです。 '[classInputLayer - 入力層のユニットを管理するためのクラス] Option Explicit Option Base 1 Dim mInUnitList() As classInputUnit 'ユニット格納用リスト Dim mInUnitCount As Long …

【VBA編】ニューラルネットワーク(classInputUnit, classUnit)

入力層のユニットクラス 入力層のみ実装が異なります。 '[classInputUnit - 入力層のユニットクラス] Option Explicit Dim mX As Double '入力データをセットする '[引数] <- inputData : Double / 入力データ Public Property Let X(ByRef aInputData As Do…

【VBA編】ニューラルネットワーク(ML)

演算用モジュール 活性化関数や損失関数を実装します。 '[ML - マシンラーニング演算用モジュール] Option Explicit Option Base 1 '活性化関数 ReLU '[引数] <- aU : Double / ユニットの u '[戻り値] -> actReLU : Double / ReLU適用後の値 Public Functio…

【VBA編】ニューラルネットワーク(ws_Main, G, mdlReadData)

ファイル指定処理 読み込むデータのCSVファイルを指定するコードです。 「ws_Main」シートに記述します。 '[ws_Main - シートオブジェクト] Option Explicit Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim filePa…

【VBA編】ニューラルネットワーク(メイン画面)

メイン画面 celaeno42.hatenablog.com メイン画面の数式 数式はこのように入っています。 C列の値はとりあえずこんな感じで。 モジュールとシート 必要な標準モジュール、クラスモジュールは以下の通りです。【標準モジュール】 オブジェクト名 用途 G 定数…

【VBA編】ニューラルネットワーク(全コード)

全コード掲載 なかなか更新の時間がとれず、ずいぶんと放置してきてしまい、未完に終わってしまうのも何なのでいくつかに記事を分けて全コードを載せていきます。 概要とデータ celaeno42.hatenablog.com メイン画面 celaeno42.hatenablog.com ws_Main, G, m…

【VBA】あみだくじを作ってみる【再帰】

Excel VBA であみだくじを作ろう! コロ子さんのブログに触発されて以前 Excel VBA で作ったあみだくじを記事にしてみました。コロ子さんとはアプローチの仕方が違いますが、実現にはいろいろな方法がありますね。 koroko.hatenablog.com シートの作成 まず…

ExcelVBAで強化学習(Q学習)を実装して迷路を解いてみる

※※ Qiitaの記事へのリンクと駄文です ※※ 強化学習ことはじめ 強化学習の勉強を始めたものの何の話をしているのかいまいちよくわからなくなっていたところで、『つくりながら学ぶ!深層強化学習 -PyTorchによる実践プログラミング-』を手に取ってみたところ、…

勾配降下法を、いま一つ腹落ちしていない過去の自分にくどくどと説明してみる。

勾配降下法 このブログでは VBAでニューラルネットワークをフルスクラッチする連載をしてますが、数式編でやった通りパラメータ更新の式は手順を追って導出できたのですが、その理屈的なところがどうもしっくりいってなかったので、そんな自分でもわかるレベ…

【VBA編】(順伝播)動作確認(2)

順伝播の実行 前回は順伝播の動作確認で必要な部分のコードを追加しました。 今回は、実際にデータを読み込んで順伝播の処理を行い、結果を表示させてみます。 celaeno42.hatenablog.com データの準備 使用するデータは以前の記事で準備しています。celaeno4…

【VBA編】(順伝播)動作確認(1)

動作確認 前回までで順伝播については入力から出力まで計算できるようになりました。celaeno42.hatenablog.comここまででいったん正しく動作するかを確認してみましょう。 ただ、その前にコードをいくつか追加しておきます。 それぞれ「----追加----」の部分…

【VBA】文字列をいい感じに改行してみる

VBA

面白そうなチャレンジだったのでやってみました。ExcelのLENとかLENBって、全角も半角もおんなじだから、漢字とひらがなカタカナと半角英数が混じった文字をだいたい見た目同じあたりで改行するってコード書くのかなりめんどいのな。諦めた。— fishb (@dampe…