chakokuのブログ(rev4)

テック・コミック・DTM・・・ごくまれにチャリ

技術ネタ

tensorflowをインストールする

ついにというかやっというか、、tensorflowを動かしてみることにした*1。自宅PCはWindows10で、VMware Playerを入れてその中でUbuntuを走らせています。tensorflowは素で入れず仮想化環境等の専用環境(isolated pythonとか?)で入れるべしということらしいの…

Amazonの購入履歴を抽出してみる

普段はKindle無料コミックを読んでいるのだが、累計で2000冊近くになっているようだ。一体どんなタイトルを読んできたのか、リストアップしたいと思った。普通に考えると購入履歴から取ってくればいいのでは?となるが、2000冊近くになると一覧でも…

クローリング・スクレイピングの覚書

そもそもスレイピングなる行為がかなりまずいことなのかどうか。。 秒間数百発以上アクセスするのはサーバに負荷かけるからまずいだろうけど。。ゆるゆるとWebサイトにプログラムからアクセスして情報を集めるのがかなりまずい行為なのかどうか。。アクセス…

Amazon Kindle無料コミック検索アプリは無用の長物と化したが。。

ここ数日、燃えてプログラミングしていた、Kindle無料コミック検索サイトだが、Amazonサイトの検索メニューを正しく設定することで、当初自分が必要としてる情報は得られることが分かった。だから、、、Amazonが提供する機能を正しく使えば、自分で作る必要…

Amazonのコミック無料ページをクローリングしてASINを収集するソフトを試作

例のKindle無料検索サイトを作成していて、APIで取ってこれる情報は一条件につき10ページまでとなっている。だから、、商品番号(ASIN)は最大100件までしか収集できない(もちろん検索条件を変えればいいのだけど、、無料Kindleコミックの情報をAPIで取…

無料Kindleコミックを一覧表示するWebアプリをGoogleAppEngineで実装

GoogleAppEngine上に無料Kindleコミックを出版日順(新しいもの順)で表示できるWebアプリを実装した。また、無料本一覧の表示が遅くならないように、一度検索した結果はDB(DataStore)に格納して、一覧表示はDBから引っ張るようにした(一覧表示は早いが、最…

Google Compute PlatformのDBについて

BigTableは使い始めるとすぐ課金されるので、無料枠設定のあるGoogle Cloud Datastoreを使うのがよさそうだ。https://cloudplatform-jp.googleblog.com/2015/08/google-cloud-datastore.htmlGoogleAppEngineからDataStoreにアクセスする事例。下記サンプルコ…

Kindle無料コミックを検索するサービスをGoogle App Engine上に試作

昔はそれほどストレスなく使えていたGAEだが、しばらく使っていないうちにサービスも大きく変わって、腕も鈍って、結構大変だった。が、、なんとかAmazon APIを叩いて、無料KindleコミックをRESTで取ってきて、それを整形して表示するシステムを組んだ。 い…

GoogleAppEngineがかなり変わっていて戸惑う

例のKindle無料コミック検索サービスを作ろうと思ってGoogleAppEngineに行ってみたら、Google Cloud Platformになっていて、インスタンス何とかで、よく言えば管理画面から統一的な操作でPaaSとIaaSが使い分けられるようなのだが、、今まで無料でPaaS使って…

BigDataとしてのAmazon

BigDataの手法を使って価値のある情報を得るには、望む情報を内在する大量データが必要。そして、抽出したい情報の仕様も必要。さらに、、分析前の大量データが結果を出すのに相応しいのか、また、分析手法が妥当か?も課題である。 国内統計データとか政府…

改めてC++を勉強する。。

とある理由でopenFrameworksを使ってみる機会があって、openFrameworksはC++で書かれていて、C++を書く機会ができてしまった。最低限の理解範囲でopenFrameworksを動かすためのへなちょこなコードは書けるけど、C++をある程度は理解した上でopenFrameworksを…

min-char-rnn.pyを自分なりに改修

RNNを理解するため、Andrej Karpathy氏によるコンパクトなサンプルプログラム(min-char-rnn.py)を自分なりに分かりやすいように改修した。具体的には、RNN用のクラスを設けて、WeightやBiasをクラスの変数(インスタンス変数)に押し込めて、forward,backwor…

無線免許を取ってから初めての交信

アマチュア無線3級を取ったけど、ずっとウオッチしかしていなかった。さらに、CW通信を目標にしていて、CWは非常に難しく、無線交信を始める壁がさらに厚くなっていた。そんな折、知り合い*1から「無線免許取ったので交信しよう」と声を掛けられた。普段リ…

ミニマムなリカレントネットワークを理解(min-char-rnn.py)

RNNはいろんな記事で紹介されているけど、時間経過をネットワークで表現した図と、ネットワークの構造(時間が止まっている時の構造)が混乱してしまって、良くわからない。一番シンプルな構造でまずは理解するのが良かろうと思われ、非常に短いサンプルソー…

【DLfS】スクラッチでリカレントネットワークを組みたい(俺RNN)

ディープラーニングと呼ばれるNNは一般的にFeed Forward Neural Networkと呼ばれるもので、過去のNNの状態を計算には加えず、入力に対して出力が算出されるもの。一方、文書理解とか音声認識は、Recurrent Neural Network(RNN)と呼ばれる、過去のNNの状態と…

【DLfS】バックプロパゲーションによる学習を実装、テスト実施

バックプロパゲーションを実装して、MNISTデータを使って5000回学習させた結果、lossが0.440で、accuracyが0.89(正解率89%)に到達。なお、正解率は学習の都度、上下変動しており、調子がいい場合は92%ぐらいまで上がる。従来の数値的微分による学習の場合、…

【DLfS】バックプロパゲーションの実装

「ゼロから作るDeep Learning」(DLfS本)を読んで、算術的微分で実装して一定の学習効果を確認したので、次はバックプロパゲーションの理解にとりかかった。 バックプロパゲーションを理解するのに、DLfS本では計算グラフを取り上げ、計算を演算子のノードと…

DoCoMo音声合成試作(NTT版)

前回HOYA版を手抜きの英文で音声合成APIを試したけど、NTTアイティ版だといろいろエラーが出るというコメントを頂いたので、、NTTアイティ版を使ってみた。また、今回は日本語(漢字文字列)を使って音声合成してみた。漢字コード体系をutf-8に整えるのに、S…

昼夜連続運転させようとsakura VPSを試行中、一番安い512MBコースでは全然メモリ足りず

夜間PCを連続で走らせるとやかましいし、自分が外出中にヨメサンがPCをぶちっと切ったりもする。そこで、VPSかクラウドで連続稼働させられないか検討。sakura VPSの一番安いコースが月額500円ぐらいで500MBという契約があり、これを試してみた。。結…

バックプロパゲーションの前に、微分をやりなおす

しこしこと取り組んでいるDLfS本ですが、数値的微分によるSGDはまぁこんなものと思い、次はバックプロパゲーションとその前段階の自動微分(本では計算グラフと表現されていますが、自動微分という分野らしい)になります。高校数IIIで微分が始まり、自分と…

【DLfS】俺NNの学習状況→10時間稼働でaccuracy:0.4〜0.5

DLfS本を勉強しながら、数値的微分による勾配法で俺NNを実装して学習させています。数値的微分による勾配降下法はアルゴリズムが理解しやすく簡単に実装できる反面、時間がかかるのはしょうがない。それは十分承知の上とはいえ、おおよそ10時間ぐらい走ら…

【DLfS】俺NNに対してMNISTデータを使って学習させてみる→めちゃくちゃ時間かかる

俺NNのデバッグが終えたと判断して、MNISTデータを使って学習させてみた。使ったネットワーク構成はDLfS通りで、2層で、[784,50,10]とした。データは10パターンを1セットとして、一回学習するごとに次の10パターンを使って勾配での学習(gradient_desce…

【DLfS】俺NNの動作がおかしいのでデバッグ..

簡単なネットワークでは学習したが、なぜかBiasが修正されない。これはまぁ単純なミスだろうから後からデバッグするとして、、バッチ実行させたところ、出力段のソフトマックス関数がバッチに対応してないことが判明。これはDLfS版の関数、softmax(P69)をそ…

【DLfS】めちゃくちゃ単純なネットワークでデバッグ→4千回学習すると正解を出す

MNISTのデータを使ったテストではまともに動いているように思えなかったのでめちゃくちゃ単純な2層ネットワークを作ってテストした。入力が[1,0]の場合は正解が[1,0]、入力として[0,1]の場合は正解が[0,1]で試した。今回はバッチ実行等はしておらず、2つの…

【DLfS】自分の好みでNNを実装、しかし学習がおかしい

DLfSの「4.5章 学習アルゴリズム」のアルゴリズムを踏襲しつつ、自分の好き勝手な実装方法で学習機能(数値微分による勾配降下法)を持つNNを作成した。エラーなしに走るには走るけど、相変わらずいろんな入力に対して同じ答えしか返さない。。しかも、誤差平…

【DLfS】よく理解できなかったサンプルコード→この実装はちょっとルール違反では!?

交差エントロピー誤差(P89)等、完全に数式の背景を理解できない部分もあったがなんとかニューラルネットの勾配(4.2.2 P109)まで読み進めた。で、、Pythonの実装で全く理解できない箇所に出くわした。それは、、P111の以下の実装 def f(W): return net.loss(x…

【DLfS】学習しない俺ニューラルネットでMNISTデータを認識させた→正解率10%なぜなら。。

例によって、DLfS本(ゼロから作るDeep Learning)で勉強しながら、学習しない俺ニューラルネットを組んで、MNISTデータを認識させてみた(DLfS本の3.6.2(P75))。ニューラルネットの重みづけは単なる乱数で設定した。バイアスも同様。結果、どんなデータを入…

【DLfS】ゼロから作るDL;MNISTデータを読み込んで表示させるサンプル

学習しない俺ニューラルネットができたところで、、次は認識結果テストだ。 DLfsでは、MNISTを使って認識率の算出を行っている(学習済みのネットワークデータも用意されていて、それを使うと認識率が90%だったか)。あらかじめ用意されたMNIST読み込みラ…

【DLfS】3.4章、forwardのみのニューラルネットを実装

ゼロから作るDeep Learning、3.4.3章 3層ニューラルネット実装まとめ(P65) 昔、スクラッチでニューラルネット(逆伝搬で頓挫)を作ってみたことがあり、その時はnumpyを使わなかったので行列計算はループ回して演算していました。numpyの行列演算ライブラリを…

【DLfS】3.2章、3種類の活性化関数を学ぶ

ゼロから作るDeep Learningでは、3種類の活性化関数が紹介されている(3.2章 P44) 1. シグモイド関数 2. ステップ関数 3. ReLU(Rectified Linear Unit)本通りに実装してpyplotでグラフ化してみた #!/usr/bin/python3 import numpy as np import matplotlib.p…