Kaggle タイタニック号

Kaggleタイタニック号の課題は与えられた条件から正確を100%正しく予測するのは困難である。今は自分で加工した固定データセットを用いて、パラメータ調整によりどこまでスコアを伸ばせるかに挑戦中(ベスト0.78947)。短時間で結果が出るのでパラメータを色々試すにはうってつけである。

NB_EPOCH = 600
VERBOSE = 1
OPTIMIZER = SGD()
BATCH_SIZE = 64
NB_CLASSES = 2
N_HIDDEN0 = 512
N_HIDDEN1 = 256
N_HIDDEN2 = 128
N_HIDDEN3 = 256
N_HIDDEN4 = 128
N_HIDDEN5 = 256
N_HIDDEN6 = 128
N_HIDDEN7 = 128
N_HIDDEN8 = 64
N_HIDDEN9 = 64
DROPOUT0 = 0.1
DROPOUT1 = 0.1
DROPOUT2 = 0.1
DROPOUT3 = 0.1
DROPOUT4 = 0.1
DROPOUT5 = 0.1
DROPOUT6 = 0.1
DROPOUT7 = 0.1
DROPOUT8 = 0.3
DROPOUT9 = 0.5
VALIDATION_SPLIT = 0.5
RESHAPED = 6
model = Sequential()
model.add (Dense(N_HIDDEN0, input_shape = (RESHAPED,)))
model.add(Activation('relu'))
model.add(Dropout(DROPOUT0))
model.add (Dense(N_HIDDEN1))
model.add(Activation('relu'))
model.add(Dropout(DROPOUT1))
model.add (Dense(N_HIDDEN2))
model.add(Activation('relu'))
model.add(Dropout(DROPOUT2))
model.add (Dense(N_HIDDEN3))
model.add(Activation('relu'))
model.add(Dropout(DROPOUT3))
model.add (Dense(N_HIDDEN4))
model.add(Activation('relu'))
model.add(Dropout(DROPOUT4))
model.add (Dense(N_HIDDEN5))
model.add(Activation('relu'))
model.add(Dropout(DROPOUT5))
model.add (Dense(N_HIDDEN6))
model.add(Activation('relu'))
model.add(Dropout(DROPOUT6))
model.add (Dense(N_HIDDEN7))
model.add(Activation('relu'))
model.add(Dropout(DROPOUT7))
model.add (Dense(N_HIDDEN8))
model.add(Activation('relu'))
model.add(Dropout(DROPOUT8))
model.add (Dense(N_HIDDEN9))
model.add(Activation('relu'))
model.add(Dropout(DROPOUT9))
model.add (Dense(NB_CLASSES))
model.add(Activation('softmax'))
model.summary()

本日の設定

中間層は9層設ける(N-HIDDEN1-9)。N-HIDDENは、512から64に下げるが、128で2回256にアップさせる(N-HIDDEN3,N-HIDDEN5)。DROPOUTは、ずっと0.1に抑えておき、最後だけ、0.3、0.5に上げる。

結果

スコア0.78468。Epoch-Accuracyのグラフで、epoch600でtrainは上昇傾向にあるのに対し、testは頭打ち傾向。epoch数を増やせばtrainはさらにアップすると予測される。dropoutの調整でtestがtrainの成績を追ってアップさせられれば良い。

Kaggleコンペ初挑戦

Alexaスキルをpython作るようになって、pythonに慣れてききたこともあり、Kaggleにも手を出している。Titanicのデータで一通り勉強したので、開催中のコンペ "Mechanisms of Action (MoA) Prediction" に挑戦してみることにした。

公開ノートをダウンロードして、ローカルのjupyter notebook上で動かしつつ検討。KerasのMNIST解析モデルは扱った経験があるのでそれを活用できないか考える。MNISTではoutputがシングルラベルであるに対し、MoAではマルチラベルでラベル数が200以上もあるため、そのまま動かすとエラー。そこでMNISTのモデルをfor loopでラベル1つずつ答えを出すように組んだところ、一応、全体の結果を出せるようになった。

結局2回のsubmissionエラーの後、3回目に初めてsubmission成立。めでたしめでたし。

Runwayで物体認識

RunwayはPCにインストールすることにより、無料でAIを体験できるアプリケーションである。物体認識(COCO-SSD、DenseCap)では、写真を取り込むと、写り込んだ物の名前を判定する。写真(上)の例では、"car" と "motorcycle" が検出された。

COCO-SSD

DenseCap

FastStyleTransfer