irisuinwl’s diary

サークル不思議(略)入巣次元の、数学や技術的なことを書きます。

「世界標準の経営理論」が良い

はじめに

めっちゃ売れてる「世界標準の経営理論」を購入しました。

自分も社会人の端くれ、企業に所属している以上はビジネス書などはつまみ食いします。(ドラッカーコトラー、大学4年間の○○が10時間でわかるシリーズなど)

自分は、売れているビジネス書というと、分かりやすいように書かれている反面、耳障りのいい言葉を言っていて内容が浅いのでは? という勝手に思っており、敬遠している逆張りのオタクなんですが、この本はとても面白いです。

ひとまず経済学ディシプリン経営理論(経済学分野から派生した経営理論)の2部までよみました。

この記事では、自分がこの本は面白いと判断した、序章について語りたいと思います。

続きを読む

wsl2を入れてdockerをインストールする

はじめに

ドライバの関係でOSの更新ができなかったのですが、ついにwindows 10 version 2004にしました。

そのため、Windows Subsystem for Linux 2(WSL2)を入れて、dockerをインストールしたいと思います。

WSL2のインストール

主な手順は以下をそのままやれば良かったです。

docs.microsoft.com

ただ、途中で以下のようなエラーが出ました

> wsl --set-default-version 2
Error: 0x1bc

これは、msのgithubにもissue があり、以下の方法でwsl2 kernelをupdateすればよかったです。

docs.microsoft.com

そして、手順通り、windows storeからubuntuのイメージを手に入れれば完了です。

dockerのインストール

これもめちゃくちゃ簡単で、docker desktopをインストールするだけです。

docs.docker.com

そうすれば、powershellから普通にアクセスできます。

おわり

InceptionV3をfine-tuningしてクリクリ画像分類器を作り、streamlitでwebアプリを作る

題名の通り。 streamlitとkerasで遊んだ。

動画デモ:

環境情報

  • 機械学習モデル作成環境: google colaboratory
  • web app環境: windows 10+anaconda 

InceptionV3をファインチューニングする

下記google colabにて実施。

colab.research.google.com

streamlitでwebアプリを作る

下記githubにコードを格納

github.com

  • WIP: deployしたり、精度あげたり

詰まったところ:

anacondaでconda install tensorflow-gpu kerasすると、tf 2.1.0がインストールされるが、windows環境ではAttributeError: ‘_thread._local’ object has no attribute 'value’というエラーが出る。

実際、下記のissueでも議論されている。

discuss.streamlit.io

github.com

ググると、「tf 1.xに下げろ」という方法が散見されるが、google colabのtfは2.x系なので抵抗がある、また、やっても失敗したので下記のように対応した。

  • AttributeError: ‘_thread._local’ object has no attribute 'value’の対処は下記を追加
import keras.backend.tensorflow_backend as tb

tb._SYMBOLIC_SCOPE.value = True
st.set_option('deprecation.showfileUploaderEncoding', False)
  • さらにValueError: Cannot create an execution function which is comprised of elements from multiple graphs.というエラーが出るが、

これはkerasからインポートしているモデル構築モジュールをtensorflow.kerasにして対処。

InceptionV3の場合は下記のようにimport文を変更して対処した。

from tensorflow.keras.applications.inception_v3 import InceptionV3
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Dense, GlobalAveragePooling2D
from tensorflow.keras import backend as K
from tensorflow.keras.optimizers import SGD

イベント発火時(画像をアップロードしたりチェックボックス操作時など)にstreamlitのコードは再実行される。

そのため、機械学習モデルの再構築を再読み込みが行われて時間がかかる。

これはstreamlitのyoloを使った物体認識webアプリのチュートリアル に、機械学習モデル読み込み時にcacheを使って対処している。

@st.cache(allow_output_mutation=True)
def load_inception_v3(weight_path: str):
    """
    指定パスからパラメータ重みを読込、InceptionV3をfine-tuningしたモデルをloadする。
    """

    ...

    model.load_weights(weight_path)

    return model

参考記事

qiita.com

qiita.com

docs.streamlit.io

aidiary.hatenablog.com

~しょばふぇすで遊ぶデータ分析~ ソシャゲのガチャスクショを画像処理してアイテム出現確率を推定した

タイトルの通り

 

最近ショバフェスにハマっております。

スクショを取りまくっていたのですが、これでなんか遊べないかなと思って、ガチャイベ(いっぱいガチャを回してゲームの便利なアイテムを取得するイベント)でガチャからアイテムが出る確率を推定してみました。(Computer Visionの勉強もしているので、それでもなんかやりたかった)

 

一段落付いたのでcolabに纏めて公開しようと思います。

※画像は引用という形で加工して一部分しか出してませんが、著作権的に問題があったら消します。

 

colab.research.google.com

 

具体的にやったことは以下です。

1. ガチャスクショ画像からガチャアイテム画像の抽出(crop)

2. アイテム画像をヒストグラムで特徴化し、類似度でクラスタリングして特徴空間がどんなものかみる

3. kNNが有効そうだと仮説を立てて、データをラベリングし、kNNで交差検証し、ちゃんと判定できることを確認(まあ、固定画像なんだからそらそうかって感じだけど)

4. 今まで貯めたスクショ画像について3. で作ったモデルを用いてラベリング→確率モデリングをして、確率の推定を行う。

 

想定知識は以下です。

メモ(ベルヌーイ分布、二項分布、カテゴリー分布、多項分布)

良くBernoulli, Binomial, Categorical, Multinomialがごっちゃになって、推定量とかってそれぞれどう関係あるんだっけ? ってなるのでメモしておく

結局はカテゴリ分布も多項分布も最尤推定はそのカテゴリが出た数を全体サンプル数で割れば良いという話であった。

 

ベルヌーイ分布のMLE

http://www-ikn.ist.hokudai.ac.jp/~yasuhiro-suzu/Bernoulli%20Distributin.pdf

 

分布パラメーターの推定(BinomialのMLEが載ってる)

http://lbm.ab.a.u-tokyo.ac.jp/~omori/meiji2/sec5/sec5.html

 

多項分布のMLEとMAP estimation

http://sleepyheads.jp/docs/multinomial_dist.pdf

 

multinomial, categoricalの違い

https://r9y9.github.io/blog/2013/07/31/multinomial-categorical-diff/

 

Bernoulli distribution(enwiki)

https://en.wikipedia.org/wiki/Bernoulli_distribution

 

Categorical distribution(enwiki)

https://en.wikipedia.org/wiki/Categorical_distribution

 

 

とんかつDJあげ太郎がヤバすぎた

はじめに

最近とんかつDJあげ太郎を読みました。アニメも見ました。名前は知っていたのですが、最近やっと読みました。

 

結果、めちゃくちゃ面白くて、ものすごい衝撃を受けました。

この記事では、その面白さを語ります、あとオマケ程度にアイマスアイカツの話をしたりします(?)

 

web漫画ならばジャンプ+で4巻まで無料で見れます。

https://shonenjumpplus.com/episode/10833497643049550155

 

アニメはニコニコDアニメ会員であれば全話見ることができます。(一話なら無料で見れます)

https://www.nicovideo.jp/watch/so28641399

 

絵はすごく人を選ぶ感じですが、話は正統派ジャンプ、正統派音楽モノ作品です。個人的音楽・芸能モノで好きな作品上位はアイカツアイマス、プリパラ、ラブライブ、SB69、少年ハリウッドでしたが、そのレパートリーに入るレベルの作品でした。

あと漫画を買わなかったことを後悔してます。あの感動をもう一度噛み締めたくて何度も読み返したくなるし、単行本の解説などがあったので…

 

続きを読む

アズールレーンをN倍楽しむために資料をまとめる

最近アズレンアズールレーン)にハマりました。

きっかけはアニメみてキャラが可愛かったから(安直なオタク)

アニメに釣られてアプリを遊んでみると、ジャンルはSTGで好きなゲーム性で、更に周回がきつくならないためにオートモードが完備されており非常に楽しんでプレイでき、ハマりました。

(オートのAIが、人力でプレイするよりは弱いが、ストレスなくプレイできるのでゲームAIのデザインがかなり秀逸なのも惹かれた点でした)

さて、この記事ではアズールレーンを楽しむ(?)ために史実の艦船資料を探してみた結果ならびにそのメモを記録します

(これでアズレンと学ぶ系の同人誌とか作れたらなぁとか考えたり)

続きを読む