女子高生になりたい

はるみちゃんのブログだよ。えへへ。

モナドトランスフォーマーを使ってモナドを合成する

ネストしたモナドの取り扱い モナドがネストして帰ってくることがあります。 例えば、DBに接続してユーザレコードを取り出す時、DBに接続できたかどうかを表すEither、該当のユーザがいたかどうかを表すOptionのモナドがネストして帰ってくるケースを考えて…

gormでRelationを組む方法とn+1の回避

Go

昨日から色々あってGo langで開発をはじめました。 超にわかですが、気づいたことやハマったことなどあれば備忘録を残しておこうと思います。 今回は、gormを使ってBelongToの関係にあるFishモデルとWaterAreeモデルのリレーションを組んでみます。 github.c…

CatsのStateモナドを使ってFP in ScalaのEx6.11 自動販売機問題を解く (2)解いてみた

Functional Programming in ScalaのExercise6.11の問題をStateモナドを使用して解いてみます。 問題設定 スナックの自動販売機をモデリングする有限状態オートマトンを実装する。 この自動販売機は2種類の入力を受け付ける。 1つは硬貨の投入、もう1つはハン…

CatsのStateモナドを使ってFP in ScalaのEx6.11 自動販売機問題を解く (1)Stateモナドについて

Stateモナドについてざっくりと。 状態の変化を伴うミュータブルな計算をFunctional Programmingのコンテキストで表現可能にしたもの。 catsにおけるStateモナドのapplyメソッドのシグネチャは以下のようになっています def apply[S, A](f: S => (S, A)): St…

UdacityのDeep Learning Nanodegree Programを修了しました

Nanodegreeとは MOOCプラットフォームであるUdacityの提供する有料コースです。 基本的には無料の講座と同様、動画を見て学ぶ形になります。 無料コースと比較して以下のような特徴があります。 修了には指定された幾つかのプロジェクトを期限以内に提出しな…

ExpectedSarsaでOpenAI GymのTaxi問題を解く

OpenAI Gym gym.openai.com 強化学習アルゴリズムを開発して比較するためのツールキット。 シンプルなものからAtariのゲームのような複雑なものまで、様々なシチュエーションが用意されています。 今回は、そこから「Taxi-v2」環境を使って、強化学習によるA…

SwiftのOptionをEither(Result)にするExtension

SwiftのOptionalをResultにするExtension書いたのでメモ。 Resultはこのライブラリを入れてます github.com 実装 import Result extension Optional { func toResult<E: Error>(error: E) -> Result<Wrapped, E> { guard let value = self else { return .failure(error) } return </wrapped,></e:>…

Scalaコストメモ

自分のコードのボトルネックを探すための検証。個人的にメモった結果を貼ってるだけです><><> 10万回繰り返す時間を100回計測し集計しています。 とりあえず時間測定のために、簡単な計測関数を作っておきます。 def printExecutionTime(proc: => Unit)…

LogstashのMultiple-Pipelinesを使う

確か5系まではmainのpipelineしかありませんでした。 なので、こんな感じでtagなどでoutput先を切り替えたりしてました。。 output { if "hoge_feed" in [tags] { elasticsearch { hosts => ["http://127.0.0.1:9200"] index => "hoge" document_id => "%{it…

DCGANで遊んでみたメモ(2)

DCGANによる顔画像の生成 データセットはみんな使ってるこれ。 mmlab.ie.cuhk.edu.hk 画像サイズを28x28x3(RGB)に整形して入力とする。 ポイントは、batch_normalizationを導入すること、らしい。 これは、ミニバッチ毎にデータを標準化する手法。 各レイヤ…

DCGANで遊んだメモ(1)

GANってなんや GAN => 敵対的生成ネットワーク 敵対的、とあるように2つの異[なった役割のネットワークが競い合う。 よく説明で使われるのは警察と偽札を作ろうとする偽造者の例。 警察は特定の紙幣を調べ、本物か偽札かを判別する。 偽造者は本物とそっくり…

VTuberになりたい!(成果物)

VTuberになりたい!のでやってみました。 ざっくりした作り方とか、制作過程のメモとかは↓で。 sakataharumi.hatenablog.jp 1. とりあえず動いた! 感動の瞬間です。 なんか鏡が暗いし、内股で、手の角度もおかしい、表情もない等欠点ばかりですが、とりあえ…

VTuberになりたい!(Tips編)

女子高生になりたい。 せや、バーチャルユーチューバーになればええんや! ということで、VTuber環境を構築したメモです。 成果物はこの記事に置いてます。 sakataharumi.hatenablog.jp 使用したもの [VR Device] HTC Vive [ソフトウェア] Unity(開発) OBS S…

ElasticSearch x Kubernetesメモ

「Elastic Search Kubernetes」でググると、この方のリポジトリが上位に出てきます。 github.com ここのstateful/にあるStatefulSetの設定をコピペすれば大体OKなんだけど、使用してるDockerImageが公式のものじゃないことに注意。 公式のものに差し替えて適…

女子高生になりたい

2017年の7月に、これから週一ペースで更新するゆーて、一回も更新しなかった。えへへ。 会社は辛いけど、がんばって働いてます。

ブログ移転の報告と意識改革。

挨拶 はじめまして。さかたはるみちゃんです。 東京で底辺エンジニアをやっていて、今は広告配信系の開発に携わっています。 昨年までは大学生でした。 学生時代はSwift、JavaScript、Python辺りをよく書いていましたが、社会人になってからはScalaが多いで…

マルコフモデル,隠れマルコフモデルとコネクショニスト時系列分類法

マルコフモデル,隠れマルコフモデルとコネクショニスト時系列分類法についての資料。 EMアルゴリズムについて、HMMのパラメータの最尤推定について、コネクショニスト時系列分類法についてはもう少し詳しくこのブログで書けたらいいなって思ってます(願望…

DEEPTONEWorksのWebサイトをリニューアルしました

DEEPTONEWorksのWebサイトをリニューアルしました!2年以上ぶりです。 リニューアル前はこんな感じ。 で、今はこう。 ブログだけでも定期的に更新していけるように頑張ります。

LSTMの解説(をしようと思った)

LSTMの解説をしようと思ったけど、なかなか重い腰があがらなかった。 なので、以前に輪講で使用した資料をそのまま貼り付けて記事にしようと思う。。。 MLP深層学習 LSTM from Shuhei Sowa 間違っている点もあると思います。随時ご指摘願えたら嬉しいです。 …

MAMPのPHPにphp-mecabを導入する

PHP

MAMPのPHPにphp-mecabを導入する方法ってあまり載ってないようなので書いておこうと思います。 mecab自体は入っている事を前提としているので注意。 環境OSX 10.11.6 mecab 0.996 MAMP 4.0.6 PHP 7.0.12 MAMPが4系じゃない場合はアップデートして下さい。 導…

SQLAlchemyのback_populatesとbackref

SQLAlchemyのback_populatesとbackrefって何がどう違うの?っていうかどっちも書かないとどうなるの?という疑問に対する答え。 結論から書くと、 (1)backrefを使用した場合 双方向のリレーションを自動的に組んでくれる。 (2)back_populatesを使用した場合 …

Xcode8でFirebaseのCrash Reportingを使う

Xcode8でFirebaseのCrash Reportingを使おうとしたらハマったのでその時の話をメモっときます。 (1) Firebaseの導入 まずは、https://firebase.google.com/docs/ios/setup に書いてある通りにFirebaseを導入していきます。 そして、iOSシミュレータ上でRUNし…

DEEPTONEWORKSがVRに対応しました

前回紹介したA-frameを使ってVR対応Webサイトを作ってみました。 と、いっても非常に簡単なデモのようなものですが。 http://deeptoneworks.com/vr/ どういう見せ方をしたら新しさを感じるんだろう。。 そこら辺ちょっと考えないといけないなあ

HTMLで簡単WebVR!A-Frameの紹介

A-Frameとは? Mozilla VR teamが開発したWebVRフレームワーク。 HTMLを書くだけでWebVR開発ができる優れもの aframe.io Entity-Component-System A-FRAMEはEntity-Component-Systemというパターンで実装されている。 エンティティ・コンポーネント・システ…

VB CODEで整数列ファイルの圧縮

大規模サービズ技術入門に紹介されている圧縮プログラミングを試してみます。 圧縮対象のデータは http://gihyo.jp/book/2010/978-4-7741-4307-1/support#supportDownload からダウンロードできるeid_tags.txtというデータです。 中身は「タイトル 数字1,数…

ディープネットの事前学習・その他の自己符号化器

MLPシリーズ「深層学習」の5.6ディープネットの事前学習と5.7その他の自己符号化器のまとめです。 ディープネットの事前学習 多層の順伝播型ネットワークには勾配消失という現象が起こるため、学習が難しい。 これを解決するのが事前学習。 一般にネットワー…

データの白色化

MLPシリーズ「深層学習」の5.5節「データの白色化」についてのまとめです。 白色化とは? 成分間(データの特徴間)の相関をなくす処理のこと。 自己符号化器が良い特徴を学習できるかどうかを大きく左右することがある。 考え方 データxの任意の2成分間で相…

React x flux でツールを作ったのでfluxについてまとめる

flux そこら中で貼られてるfluxの概念図を貼っておきます。 簡単に言うと、 ・Viewは親Component ・Actionは処理の内容を記したオブジェクト ・DispatcherはStoreへActionの通知を行う。具体的には登録されたCallbackを順次実行していく。 ・Storeは状態の保…

セルの素性を抽出する

タイトルのセルか、データのセルか、列見出しか行見出しか・・などを推定するための素性を設定するで。 とりあえず、以下にしたで。 x座標,y座標の算出に使うセルの原点は左上としてるで。 width height x y x座標(%) y座標(%) 面積 面積(%) セルの4隅…

プログラミング初心者が苦しみながら確実な基礎力を身につけるための技術書

確実な基礎力を身につけるために 初学者がいきなりサービス開発をはじめるのも良いと思う。 本をまずは見よう見まねで写経して、少しずつ理解を深めつつ、サンプルコードを改造して自分のサービスを作る。 それができたら一番いいと思うんだけど、そんな事で…