back to the source - 原点回帰😎

自然言語処理 初心者

マグロマート行ってきた報告

友人と中野にあるマグロマートに行ってきました.
一言でいってこんな値段でこんな部位のマグロ食べれるなんて最高すぎる. (語彙力0)
居酒屋としても最高だし震えた.(日本酒からビールまで選り取り)
ただし,要予約なので注意が必要です(席数少ない+人気のため)

こちらからは以上です.
友人がプロ力で写真撮ってきた飯画像がこちらです.

実はいつも一緒に寿司食べてくれる寿司フレンズとは月1で寿司を食べに行っているので,そのログとかもまとめて公開したい(やる気があれば)

昔に浸りながら死んでいきたい

懐古に溺れてそして死ぬ

今日夕方までMステで元気が出る?音楽ランキングをボケーと見てたんだけど,クリティカルに世代HITしてて辛くなってきた.
ボカロ全盛期と言ったら失礼だけど歌って見たとボカロで新曲が常にランキングを賑わせていた頃がクリティカルなのでこちらも辛くてついつい昔のマイリストをめぐってしまった.

明日から仕事です..
もうそろそろ進捗出さないとやばい空気があって辛いですが頑張っていきます👊

k-meansでシーン分類はできるのか?

久々に画像処理やろうと思ったら何かも地獄の釜に忘れてきたせいか何も思い出せない.
なので思い出しながら作業したいと思います.

今回はYouTubeキズナアイちゃんのある1動画のシーンを分類します. まず動画を適当にDLしてきてffmpegで1秒1フレームで切り出し保存します.

ライブラリはこの辺りを使います. opencv3を使ったらもっと楽かもしれない.

from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
from sklearn.cluster import KMeans #k-means
%matplotlib inline

まずは画像を表示して見ます

img = Image.open("sample.jpg")
plt.imshow(img)

f:id:planetaria:20170907203314p:plain かわいい

次に画像からRGBやHSVを取得してみます.

img = Image.open("sample.jpg")
r,g,b = img.split()

rh = np.array(r).flatten()
gh = np.array(g).flatten()
bh = np.array(b).flatten()

plt.hist((rh, gh, bh), bins=120, color=("r", "g", "b"), rwidth=0.9)
plt.show()

f:id:planetaria:20170907203439p:plain

def plt_pic(img):
    h,s,v = img.convert("HSV").split()
    plt.figure(figsize=(10,8))
    plt.subplot(311)  
    plt.imshow(np.array(h))
    plt.subplot(312)
    plt.imshow(np.array(s))
    plt.subplot(313)  
    plt.imshow(np.array(v))
    plt.show()
    #hist_plot(h,s,v)
    return h,s,v
plt_pic(img)

f:id:planetaria:20170907203729p:plain

今回はこのhue(色相)を特徴量としてk-meansでクラスタリングして見ます👊

fileList = glob.glob("aichan/*.jpg")
hue=[]
for name in fileList:
    #img = Image.open(name)
    img = Image.open(name).resize((160,100),Image.ANTIALIAS)
    h,s,v = img.convert("HSV").split()
    ht,be = np.histogram(np.array(h),bins=120)
    hue.append(ht)
est = KMeans(n_clusters=6)
est.fit(hue)
labels=est.labels_

0:ゲームシーン全般
f:id:planetaria:20170907204216p:plain:w400
1:end
f:id:planetaria:20170907204243p:plain:w400
2:わーい
f:id:planetaria:20170907204253p:plain:w400
3:GameOver
f:id:planetaria:20170907204513p:plain:w400
4:!?
f:id:planetaria:20170907204308p:plain:w400
5:キズナアイのみ
f:id:planetaria:20170907204404p:plain:w400

見て分かる通り,全体的に分類できてるのがわかりますね(適当)
簡単に遊んで見ました. 今回はk-meansで遊んだんですけどクラスタ数を決めない,クラスタ数を自動で推定するx-meansとか気になってたりします.

以下はタイル状に保存とかのコードとか..
画像をタイルにするならばImageMagickのmontage使った方が綺麗になる気がする..

def tile(board,height,width,filename):
    img = np.array(Image.open(filename).resize((160,100),Image.ANTIALIAS))
    board[height*img.shape[0]:height*img.shape[0]+img.shape[0],width*img.shape[1]:width*img.shape[1]+img.shape[1]] = img
    return board
result=[]
disp=0
for i,name in enumerate(fileList):
    if labels[i] == disp:
        result.append(name)
print(len(result))

MEL=int(np.ceil(np.sqrt(len(labels[labels==disp]))))
board_width,board_height = int(160*MEL),int(100*MEL)
board = np.zeros((board_height,board_width,3),dtype='uint8')
print(board.shape)
cnt=0
for x in range(MEL):
    for y in range(MEL):
        try:
            #print(result[cnt])
            board = tile(board,x,y,result[cnt])
            cnt+=1
        except Exception as e:
            #print(e)
            break
plt.imshow(board)
cv2.imwrite("board{}.png".format(disp),cv2.cvtColor(board, cv2.COLOR_BGR2RGB))

英語を英語として読めない苦悩

あ、単位落ちました.. 中旬締め切りだったのですが中旬にドタバタしていてやってしまった感があります…


英語論文を読んでいても脳内で自動的に 英語→日本語をして読んでいるのでどうにも効率が悪い そして話し言葉のように前から後ろに読み流しても後ろから前に戻って読み直す なんとも非効率.. うううう..

ラボの先輩曰く,わからない単語がなくなればあとはなんとかなる と言われたのでとにかくわからない単語がないまでは練習あるのみかなって思います..

インターンも3週目になり方向性も決まってこれからっしょという感じです….

最近,論文読んでいてわからないことが増えて来たので一度書籍をしっかり読み直して理解したい..
そしてコードも書いてないと本当に忘れてしまうのでこれもなんとかしたい..

研究してるおかげで研究は基本的に個人戦であることなどを実感して向いてないなぁって思って,それでも何か成果が出ると喜びを感じて狭間で揺れている..

休日に外出て活動する気力すらわかない.. お家is最高って感じ.. これじゃ出会いなんてないですね(笑)

恋も仕事も生きがいも全てがわからない

8月もコミケが終わると中盤という感じです. 授業もなくなりラボのMTGも不定期になり私も夏風邪を引き家に引きこもっていて気分も精神も参ってしまい昼夜も逆転してしまいました.
今週からインターンが始まるのですが正直, 今の生活スタイル夜おきて昼に寝てる 生活してるから生活リズムやばくてツライ.

続きを読む

7月第3週 めも

先週は以下の会に参加してきました.

Gunosyの方の出た本は今回3章の解説である. エンジニア目線というか,一度読んだ人がもう一回確認程度って感じで良さがある.
私的にはその後の論文紹介が楽しみである.
レトリバの方はこれから機械学習やDeepLearning使っていくぜって人が半数いるっぽく感じた.
こちらは1-2.5章の解説でBPの説明まで行っていたのだがレトリバの本職がNLPなのでこれからNLPの話になっていくのか少しきになる.

両読み会に参加して思ったのは私が普段参加する内輪というか研究室内での輪読会に比べてスピーディ感がある点.
読み会に参加したのは初であったので良い刺激になったので,自分の周りでもこういう感は取り入れていきたいと感じる

自然言語処理研究会は両日参加した.
ヤフーの人の招待講演とDeNAらの個性の追加反映の論文発表が特に興味深かった.
ヤフーの人がおっしゃっていた

ユーザがシステムを””普通に”利用(明示的な教師信号や報酬は与えない)してユーザとの対話の経験を通して自律的に学習、成長する対話システムの構築が理想的

という言葉が印象的であった. 他には言われてみれば確かに

近年のデータ駆動型NLPの進展は大量のテキストデータ(Twitter,ブログ記事,新聞記事etc..)の存在に支えられている.

現実問題的に独話データ量は増えているけれど対話データ量はそんなに増えていない.

とうなづいた.

個性やキャラ性については,15年?のPFIインターン成果発表でVAE用いたキャラ性の変換とか先日みづはしさんがQitaに上げていたCVAEによる口調変換は知っていた.
けどそれとは違ったモデルで自分でも確かめたくなってきた(データセット的に難しい(つらい))

www.slideshare.net
個人的には初めて小町先生, 乾先生や高村先生を目にしてこの人なのか!!!って思った.

全脳アーキテクチャ若手の会は半年ぶりに参加してきました. 強化学習会ということで慶應4年の妹尾さんが2時間超発表していた.
DQN以降の強化学習の手法や論文紹介がされていてボリューム満点であった.
資料が結構細かく書いてあったので強化学習をする際は参照したいと思う.
強化学習の基礎的な部分は以前全脳アーキテクチャ若手の会で発表した川崎さんの資料がとても参考になると思う.

深層強化学習の動向 / survey of deep reinforcement learning // Speaker Deck
時間押してたので懇親会には参加しなかったのですが懇親会に参加しないのであればニコ生で良かったのかなと思います.
live.nicovideo.jp


久々に勉強会や研究会に行き実際に発表聞いたりしてモチベーションが向上したのでがんばりたいとおもいます.
同年代で活躍されている方も多いので負けられないですね.

今月からまた記事書きます

ああああ, 死んでた.
ちょっとドッタンバッタン大騒ぎしてて記事書けてなかったけどフッカツダー!!(゚∀゚ )三 三( ゚∀゚)フッカツダー!!


最近データや統一された公開webまとめを見ると,これデータセットに使えないか?
なんて思ってしまう病に侵されている.