現場データサイエンティスト奮闘記

とある企業で働くデータサイエンティストの日々のアウトプット

Dockerコンテナでpythonを動かしてSlack Webhookを使ってみた

背景

会社の分析チーム内で、GKEやDockerコンテナだのを使う話が出てきました。
しかし、Dockerとか全く触ったことがないので、その勉強と練習を兼ねてやってみたという記事です。
PythonとSlack APIは普段から触ってるので、材料としてちょうど良さそうだったからです。

Dockerコンテナとは

Dockerfile に記載した内容で Docker image が作成される。
Docker image がレジストリに置かれて、クラウドなどの実行環境(マシン)に pull される。
Docker image をビルドすると Dockerコンテナができあがる。
つまり、Dockerfile とは、Dockerコンテナの設計書のようなものである。
図解するとこんな感じでしょうか。

f:id:kazuki_hykw:20181121163118p:plain

続きを読む

ディープラーニングが画像を分類する仕組み

概要

会社で「ディープラーニングって実際どんな風に動いてるの?知りたい!」と言われたので社内向けに作った資料を記事にしています。

想定読者

エンジニア・データサイエンティストというより、以下のような課題感を持ったビジネス職の人を対象にしています。

  • ディープラーニングという言葉は知っているが、実際にどんな風に動いているか知りたい
  • プログラムは書いたことがないのでシステムの話は理解出来ないが、なんとかエンジニアやデータサイエンティストと会話できるようになりたい
  • 機械学習は大量のデータが必要だとは聞くが、どんなデータがあればいいのか見当がつかないので教えてほしい

課題設定

やりたいことはシンプルで、今見ている画像を任意の種類のカテゴリに分類したいということです。 例えば、ひまわりの画像を植物と分類したかったり、ラーメンの画像を二郎系や中本など見分けたりといった感じです。

この、ものを見分けるというタスクを機械にやらせるための手法として深層学習( Deep Learning )という方法が取られます。 通常、人間が行うようなこのようなタスクを実現するシステムを人工知能( AI )と呼びます。

人工知能( AI )について

AIと言われて素朴に想像するのはドラえもんのような、自ら意思を持ち、自ら考え行動するようなマシンでしょう。 未だフィクションの域を出ないそのようなAIは強いAI、または汎用人工知能などと呼ばれます。

一方、実際に実現しているAIシステムは弱いAIと呼ばれ、これらはある特定のタスクを実行するのみに留まります。

今回紹介する Deep Learning もまた弱いAIの一部です。

続きを読む