限りなく院生に近いニート@エストニア

エストニアという国で一人ダラダラしてます。

OCRで画像からテキスト(日本語)を抽出してみる。

OCRを使って、画像からに日本語を抽出しようと思ったので、メモ。

 

 


from PIL import Image
from pytesseract import image_to_string

img = Image.open('ex.jpg')
text = image_to_string(img, lang='jpn')
print(text)
   

language設定で、最初日本語設定ができなかった。

 

どうやら

jpn.traineddata

 

をダウンロードし、

 

/usr/local/share/tessdata/

 

へ落とさないとダメらしい。

 

ドラッグ&ドロップでもいいが、コマンドでもいける。(下記)

 

 


$ curl -L -o /usr/local/share/tessdata/jpn.traineddata 'https://github.com/tesseract-ocr/tessdata/raw/master/jpn.traineddata'

Upper Confidence Bounds

Upper Confidence Boundsという方策について簡単にまとめたい。

今回の例においては、スロットマシンをどう選んで遊んでいくかを考えることがポイントであるが、

その際、結果を最大化するために、最適なマシンを選んでいくことが重要になってくる。

しかし、選択回数が少ないマシンについては、そのマシンからの結果が正確に推定できていない可能性がありますよね。

これらのバランスをとる方法が、Upper Confidence Boundsである。

マシンを選択する際、毎回以下の氷菓式で求められる評価値を算出し、最もスコアの高いアームを引く。



\bar{\mu_{i}}(t) = \hat{\mu}_{i}(t) + \sqrt{\frac{\log t}{2N_{i} (t)}}



\bar{\mu_i}(t)

時刻tのアームiのスコア



\hat{\mu}_{i}(t)
時刻tのアームiの標本平均



N_{i} (t)
時刻tまでのアームiの選択回数

*メリットとデメリット

メリット

どの程度マシンについて知っているかを考慮してマシンを選択できる。
パラメータを設定する必要がない。
最終的に最も良いアームのみを選ぶように収束する。

デメリット

悪いマシンをExploreのために引きすぎてしまう。

The Epsilon-Greedy Algorithm

ε-greedyは機械学習においてよく使われる方法であり、そんなに理解に苦しいアルゴリズムではない。
Exploit のみを続けることに対するリスクを緩和する方法である。

僕が理解できれば、みんな余裕ってわけよ!

例えば、今目の前に3台のスロットマシンがあるとしよう(k=3)。
さらにそれぞれのマシンは、それぞれ違う確率で当たりが出るとし、合計100回チャレンジできるとする。

この時、どのマシンをどのくらい使えば、もっとも高い利益を出せるかという考え方については、前回触れたこちらの通りである。

tishow.hateblo.jp

ε-greedyは先に述べたようにそこまで複雑ではない。

マシンをプレイする時、それぞれのマシンがどのような結果を出していくかを皆追うと思う。そのとき、





Probability = (1 - \epsilon ) + \frac{ \epsilon}{k}

で現在もっともスコアの高いマシンを選択し、




Probability =  \frac{ \epsilon}{k}

で、ハイスコア出ないマシンを選択する。
この時、εは0.1とか、そういう小さい値である。

最初の12回の試合の後、マシン1を4回まわし、$ 1を2回、$ 0を2回獲得したとしよう。 このとき、マシン1の平均は$ 2/4 = $ 0.50である。

そしてマシン2を5回まわし、$ 1を3回、$ 0を2回獲得したとしよう。 マシン2の平均支払いは$ 3/5 = $ 0.60である。

そしてマシン3を3回まわし、$ 1を1回、$ 0を2回獲得したとしよう。 マシン3の平均支払いは$ 1/3 = $ 0.33である。

そして、試行13で再生するマシンを選択する必要があるが、このとき乱数pを0.0から1.0まで生成する。
また、ε= 0.10と設定したとする。
p> 0.10の場合は、現在の最高平均支払い額があるため、マシン2を選択する。
しかし、p <0.10の場合、ランダムなマシンを選択するので、各マシンは1/3の確率で選択される。

注意することは、すべてのマシンからランダムに選択するため、マシン2が選択される可能性があるということだ。

時間がたつにつれて、もっとも良いマシンはより頻繁にプレーされるため、より頻繁にプレイされる。
要するに、ε-greedy手段は、ほとんどの場合、現在の最良の選択肢を選ぶが、
ときどき小さな ε 確率でランダムなオプションを選ぶことがある。