わかめの備忘録

Courseraの講座を初めて受講する人に向けて

こんばんわ、わかめです。

はてなブックマークを覗いていたらこんな記事が。 getnews.jp

まさかCourseraの講座、受講報告が記事になりバズるとは思ってもいませんでした。
やはりバズる人はバズるということでしょうか。

そこで今回の主旨は、この記事を見て「Courseraの講座を受講してみたい!」という初心者向けに役立つ情報を紹介してみます。

ちなみに私もCourseraの講座受講者であり、
機械学習や深層学習のコースを受講し資格を取得していたりします。

wakame1367.hatenablog.com

資格(Certification) について

Courseraの資格(Certification) とは

Courseraで取得する資格は講座を受講したことを証明するもの。
専門的なスキルを証明するものではないということに注意してください。

A Course Certificate is proof that you completed and passed the course.

learner.coursera.help

この資格はCourseraいわく、履歴書や職務経歴書、LinkedInのスキル欄に記述することができる。
LinkedInのスキル欄はこんな感じで記述できます。

f:id:wakame1367:20180922182912p:plain:w500

取得方法

各コースで設定されている課題の合格条件を満たせば、資格(Certification)をもらえる。

Pass all required assignments in the course, or meet the course passing threshold for a cumulative graded course

フリートライアル

f:id:wakame1367:20180922180342p:plain:w500

  • 無料で全てのコンテンツにアクセス可能
  • ただしCertificationを取得するには課金が必要、例外あり(Free certificate courses 名前の通りCertification発行に課金は必要ない講座)
  • フリートライアルで受講する場合もクレジットカードを登録する必要がある
    • クレジットカードの登録については後述

      課金について

Neural Style Transfer Tutorialを試してみた!

Kerasの製作者、François Chollet氏のツイートを
見てたらこんなツイートが

medium.com

どうやらNeural Style TransferのチュートリアルがGoogleColabで動かせるよという話みたいだ。
簡単に試せるならということで、とりあえず自分のTwitterアイコンをNeural Style Transferしてみた!

まずは葛飾北斎神奈川沖浪裏スタイル画像に使ってみた例

←から入力画像、スタイル画像、スタイル変換後の画像 f:id:wakame1367:20180821203009p:plain

次はフィンセント・ファン・ゴッホ星月夜スタイル画像に使ってみた例 f:id:wakame1367:20180821203056p:plain

その次はこの画像スタイル画像に使ってみた例 f:id:wakame1367:20180821203108p:plain

最後はこの画像スタイル画像に使ってみた例 f:id:wakame1367:20180821203336p:plain

Kerasのplot_modelでコケたときに見る記事

TL;DR

  • pydot の開発が再開?され
  • 最新版のpydotはPython3.5と3.6に対応したので
  • pydot 1.2.4を入れよう

github.com

記事の元ネタ

teratail.com

なぜこの記事を書いたのか

例えば「Keras plot_model error」などのキーワードでググると出てくるこの記事。

qiita.com

pydotは現在開発が止まっており、python3.5および3.6では動きません。 これらのバージョンのpythonを用いている環境では、 pydotplusまたはpydot-ngを代わりに使用することで対処できます。 私はpydotplusを使いました。

引用文より、繰り返しになりますがpydotは現在開発が止まっており、python3.5および3.6では動きません。という問題に対し
解決策としてpydotではなくpydotplusまたはpydot-ngを利用するとあります。
しかし最新版のKeras、具体的には2.1.6以降でこの解決策を適用しようとすると余計にハマります。
なぜかというと、Keras 2.1.6以降ではpydotのみImportしようとするからです。

# `pydot` is an optional dependency,
# see `extras_require` in `setup.py`.
try:
    import pydot
except ImportError:
    pydot = None

keras/vis_utils.py at 2.2.0 · keras-team/keras · GitHub

それに対し前のバージョン、具体的には2.0.5から2.1.5の間ではpydotとpydotplust、pydot-ngそれぞれImportしようとします。

try:
    # pydot-ng is a fork of pydot that is better maintained.
    import pydot_ng as pydot
except ImportError:
    # pydotplus is an improved version of pydot
    try:
        import pydotplus as pydot
    except ImportError:
        # Fall back on pydot if necessary.
        try:
            import pydot
        except ImportError:
            pydot = None

keras/vis_utils.py at 2.1.5 · keras-team/keras · GitHub

したがって、pydotの代わりにpydotplus、pydot-ngを利用しようとすると余計にハマるわけです。

約140年分の東京の平均気温をヒートマップ化してみた

この記事を読んでできること

誰でもこの記事と同じヒートマップが作れるようになれる。 toyokeizai.net

完成品

f:id:wakame1367:20180804211306p:plain

と言ってもまったく同じものができるわけではなく
自分が今持っている技術(PythonやPandas等)でヒートマップ化してみましょうという話。

データの準備

過去の気象データ・ダウンロード

今回利用するデータは気象庁が提供している過去の気象データになります。 下記リンクから以下の手順でダウンロードしてください。 www.data.jma.go.jp

都道府県・地区を選択する

今回は東京についての平均気温データを取得するので
東京をクリックしてください。

f:id:wakame1367:20180801225859p:plain:w500

東京をクリックするとこんな画面になると思います。
東京にチェックがついているか確認してください。
ついていればOKです。

f:id:wakame1367:20180801230130p:plain:w500

取得する項目(今回は日平均気温)を選ぶ

次に画面上のタブから項目を選ぶボタンを押して下さい。
そうするとこんな画面になると思います。

f:id:wakame1367:20180801231010p:plain:w500

そうしたらデータの種類-日別値項目-気温-日平均気温にチェックを入れて下さい。

f:id:wakame1367:20180801231216p:plain:w500

取得する期間を選ぶ

次に画面上のタブから期間を選ぶボタンを押して下さい。
そうするとこんな画面になると思います。 f:id:wakame1367:20180804182000p:plain:w500

取得する期間を選ぶのですが今回は記事と同じ期間を選んでみます。記事によると

このヒートマップは、夏期(6月から9月)の東京における過去140年間の日別平均気温を表したものだ。横軸は月、縦軸は年(1876年から2018年)を示している。

だそうなので、1876年から2018年までの期間を選んでみます。
過去の気象データ・ダウンロードではどうも一度にまとめてダウンロードできないようなので

  • 1876年 - 1940年
  • 1941年 - 2017年

と二段階に分けてダウンロードします。
特定の期間を複数年分、表示するにチェックを入れて以下のように期間を入力してください。 そうしたらCSVファイルをダウンロードボタンを押してCSVファイルをダウンロードしてください。

f:id:wakame1367:20180804182154p:plain:w500

f:id:wakame1367:20180804182211p:plain:w500

最後に2018年のデータをダウンロードします。
連続した期間で表示するにチェックを入れて以下のように期間を入力してください。 そうしたらCSVファイルをダウンロードボタンを押してCSVファイルをダウンロードしてください。

f:id:wakame1367:20180804184105p:plain:w500

これでヒートマップを描画するためのデータの準備ができました。

データの可視化

コードはGoogleColabで実行できるように下記リンク先で閲覧可能です。

GoogleColab - heatmap.ipynb

自分の環境で試したいという方はファイル > .ipynbをダウンロードを押すとJupyterNotebook形式のファイルが
ダウンロードできます、そちらを自分のGoogleDriveにアップロードしてGoogleColab環境で実行してもらえれば冒頭のヒートマップが描画できます。

GoogleColabの使い方についてはこちらで説明しています。 wakame1367.hatenablog.com

最後に

toyokeizai.net

こちらの記事で使われているライブラリ、記事より引用すると

ヒートマップの画像生成にはJavaScriptライブラリのP5.jsを用いている。

とのこと。P5.jsの使い方はさっぱりわからないし、 可視化に使っているデータを見てみると(記事の「データをダウンロード(JSON)」からダウンロードしてみてください)

f:id:wakame1367:20180731213512p:plain

おそらく1日毎の平均気温を配列に格納しているようですが
可視化のためにこのJSONファイルを作成するスクリプトを作るのも面倒なので、なんとか元のCSVをそこまで加工せずに可視化ができないかを考えたというのがこの記事を書いたモチベーションになります。

参考

GTSRBデータセットを利用した画像分類(1)

今後参加するであろう画像分類コンペへの対策や
今までDeepLearningについて学んできた内容のおさらいとして
今回からGTSRBのデータセットを使い モデル構築の方法や
データセットの取扱い方法などを実践してみたいと思います。

第一回目はこちらのチュートリアルをやってみます。 chsasank.github.io

またこの記事から続く連載記事の最終目標を転移学習(Transfer Learning)やデータ加工(Data Augumentation)等の技術を駆使して「過去のコンペ1位の精度である99.71%に近づける」に設定したいと思います。

まずは利用するGTSRBデータセットについて。

GTSRBとは

International Joint Conference on Neural Networks (IJCNN) 2011で開催されたドイツの道路交通標識画像分類コンペのこと。

データセット概要

The German Traffic Sign Recognition Benchmark(GTSRB)

  • 単一画像、マルチクラス分類
  • 訓練、テスト画像含め50,000枚以上の画像群
  • 43種類のクラス
  • 光の状態、明るさや暗さを加味したデータセット

下記画像はコンペで使われる43種類の画像群になります。 f:id:wakame1367:20180628220514p:plain

また、上記データセットは下記リンクからダウンロードできます。
ダウンロードURLを赤色の枠で囲っておきました。
German Traffic Sign Benchmarks f:id:wakame1367:20180629220503p:plain

f:id:wakame1367:20180629220512p:plain

43種類それぞれのドイツ道路交通標識の詳細について参考リンクをおいておきます。 www.berlinnet789.de

ソースコード

実際に使ったソースコードを用意しました。 github.com リポジトリ名間違えた・・・

MOOC受講履歴・予定まとめ

MOOCとは

Massive Open Online Course (MOOC、ムーク) またはMassive Open Online Courses (MOOCs、ムークス) は、インターネット上で誰もが無料[1] [2] で受講できる大規模な開かれた講義のことである[3][4]。代表的なプラットフォームとしては「Coursera」「edX」や、日本版としてはJMOOC[5]が提供する「gacco」「OUJ MOOC」があり、条件を満たせば修了証が交付される

Wikipedia - Massive open online courseより

MOOCについては少し触ってみたけどよく理解できなかった技術を体系的に学ぶときに利用しています。実習(プログラミングなど)を挟むので理解の助けになり、気に入っています。今後も計画的な予定を立てて、積極的に受講していく予定です。

MOOCの定義として「無料で受講できる」とありますが、講義を聴講するだけは無料でCertificateの発行は有料(Coursera)だったりするので無料有料関係なく受講したものを下記に表にまとめています。

受講済み

今までに受講したMOOCへのリンクやCertificateのリンクを載せています。

Coursera
Title Course Link Certificate Link
Machine Learning Link -
Neural Networks Deep Learning Link certificate
Improving Deep Neural Networks: Hyperparameter tuning, Regularization and Optimization Link certificate
Structuring Machine Learning Projects Link certificate
Convolutional Neural Networks Link certificate
Sequence Models Link certificate
Deep Learning Specialization deeplearning.ai 5 Course Certificates - certificate
Google Cloud Platform Fundamentals: Core Infrastructure Link -
Udemy
Title Course Link Certificate Link
Go: The Complete Developer's Guide (Golang) Link -
Machine Learning A-Z™: Hands-On Python & R In Data Science Link -
Deep Learning A-Z™: Hands-On Artificial Neural Networks Link -
TensorFlow, Python3, OpenAI Gymで学ぶ】強化学習入門 Link -

受講予定

今後受講したいMOOCへのリンクを載せています。

Coursera
Title Course Link Certificate Link
Machine Learning with TensorFlow on Google Cloud Platform Specialization Link -
Architecting with Google Cloud Platform Specialization Link -
Udemy
Title Course Link Certificate Link
Complete Python Web Course: Build 8 Python Web Apps Link -
REST APIs with Flask and Python Link -
Python and Django Full Stack Web Developer Bootcamp Link -
Udacity
Title Course Link Certificate Link
Software Debugging Automating the Boring Tasks Link -

技術書典4に参加してきました

2018/04/22 (日) 11:00〜17:00に秋葉原UDX アキバ・スクエアで
開催された技術書典4に参加してきました。 約2ヶ月前の話題ですが、行ってきましたアピールをしておく。 techbookfest.org

技術書典とは? 新しい技術に出会えるお祭りです。 技術書典は、いろんな技術の普及を手伝いたいとの想いではじまりました。 技術書を中心として出展者はノウハウを詰め込み、来場者はこの場にしかないおもしろい技術書をさがし求める技術に関わる人のための場として『技術書典』を開催します。

当日の状況

去年は当日天気が悪いせいか約3000人の参加人数だったらしく今年は快晴でそのせいか約2倍の参加人数!

こういうイベントは初参加で慣れておらず結構疲れた・・・w

f:id:wakame1367:20180613222719j:plain:w300

当日お昼くらいに到着して整理券3304番を受け取り秋葉原
ブラブラして時間をつぶし、だいたい午後1時半くらいに入場できました。

f:id:wakame1367:20180702214938j:plain:w300

参加までの経緯

参加に至る経緯として、こちらのブログのcurrypurin氏と

www.currypurin.com

当日の出版物のおまけで出すと言われていたscikit-learnチートシートの作成のお手伝いをしていたらこんなやりとりがありまして、はじめての参加になりました。

戦利品

上の経緯でもらった出版物のみ、もっと欲しいものがあったのですが当日の混雑具合から購入を断念しました。_| ̄|○ f:id:wakame1367:20180613222752j:plain:w300

後日、電子版を改めて購入しました。

note.mu

こちらも電子版で購入。 note.mu

終わりに

技術書典って変換一発出てこなくてタイプ面倒だなって・・・

GoogleColaboratoryでPythonの実行環境を作ろう!

はじめに

最近、AidemyProgatePyQのようなクラウド上で学習環境が
用意できるサービスが増えてきています。
それらのサービスでは最低限インターネットにつながるパソコンさえあればPythonプログラミングができ、また流行りの機械学習や深層学習も体験できるようになってきています。

上記のようなサービスを体験し終わったあと、個人で機械学習
深層学習の学習を効率良く進めようと思ったら ある程度マシンスペックの高いマシンを用意する必要があります。

例えば私が以前組んだマシン、お値段約15万円ほど。個人で用意しようと思うと最低でもこのくらいはかかってしまうと思います。 wakame1367.hatenablog.com

前置きはここまで

GoogleColaboratoryの紹介

そこで学習環境を移行する際に是非使って欲しいサービスがありますそれがこちら。 GoogleColaboratoryです。

  • Colaboratory とは何ですか? Colaboratory は、機械学習の教育や研究に利用できる研究ツールです。特別な設定なしで、Jupyter Notebook 環境をご利用いただけます。

  • どのブラウザに対応していますか? Colaboratory はほとんどの主要なブラウザで動作し、PC バージョンの ChromeFirefox では完全に動作するよう検証済みです。

  • 利用は無料ですか? はい。Colaboratory は無料でご利用いただける研究プロジェクトです。

Colaboratory – Googleより引用

要するにいままで使ってきたパソコンそのままでかつ個人で学習できる開発環境を用意できるということです。

また使えるマシンスペックは以下のようになります。
個人で使うには十分な開発環境が使えます!

個人に与えられるには下記環境(20180121現在):

  • n1-highmem-2 instance
  • Ubuntu 17.10
  • 2vCPU @ 2.2GHz
  • 13GB RAM
  • 40GB Free Space
  • GPU NVIDIA Tesla K80
  • アイドル状態が90分続くと停止
  • 連続使用は最大12時間 Notebookサイズは最大20MB

qiita.com 上記リンクより引用

GoogleColaboratoryを始めるまで

じゃあ使いたいのだけどどうすればという方のためにGoogleColaboratoryを始めるまでをまとめました。
参考になれば幸いです。

1. GoogleDriveへ

まずはGoogleDriveを開きましょう。 www.google.com

2. GoogleColaboratoryアプリを追加

GoogleDriveを開いたら 新規 > その他 > アプリ追加を押すと f:id:wakame1367:20180627154559p:plain:w600

次のような画面になるので検索窓にColabと入力して検索するとColaboratoryアプリが開くと思います。

自分の環境だと既にアプリ追加済みのため
以下のようになっていますがまだ追加されていない方は接続というボタンを押して下さい。 f:id:wakame1367:20180627154607p:plain:w600

3. GoogleColaboratoryを起動する

新規 > その他 > Colaboratory を選んで押して下さい。 f:id:wakame1367:20180627154707p:plain:w600

4. GoogleColaboratoryを使ってみる

起動するとこんな感じ画面になると思います。 f:id:wakame1367:20180627192039p:plain

GoogleColaboratoryを始めるまでの説明は以上になります。

その後の操作等については下記リンクのGoogle Colabのセルの基本操作が詳しいです。 www.codexa.net

参考

Andrew Ng氏とIan Goodfellow氏の対談動画翻訳まとめ

CourseraのDeeplearning講座受講時に Google翻訳とにらめっこしながら書いた翻訳メモを公開します。

Coursera Deeplearning.ai - Neural Networks and Deep Learning

動画本体はYoutubeでも公開されていたのでみんなも1回は見ておくといいよ!

Andrew Ng氏との関係

  • 実はAndrew Ng先生の「Intro to AI」の講義を受講してAI科学者の道を目指した
    • この講義かな?

GANの開発経緯について

  • 過去の技術であるボルツマンマシンやスパース符号化の弱点を克服できる技術を模索していた
  • 友人とバーでGANについて議論していた、帰宅後の深夜に最初のversionを完成させた
  • 最初のversionでうまくいった、ハイパーパラメータ等を初期値から特にいじらずうまくいったとのこと

GANの今後

  • 10年前にはDBN(Deep Belief Network)のパーツとして使われていたボルツマンマシンのような技術であってほしい
  • 上記技術によって深層学習が信頼できる技術になっていった、GANもそうであってほしい

AIについて関係する仕事をしたい場合どうすればよいかアドバイスはありますか?

  • Githubにコードをアップロードしよう
    • 耳が痛い・・・w
  • 博士号はなくてもよい
  • リポジトリがバズるといろんな人に見てもらえる、そこからお仕事に・・・という話も
  • 実際、Googleの採用もリポジトリからという事例があったらしい
  • 本を読んだけで終わらず何かプロジェクト・課題にトライしてみる
  • 自分の興味のある分野に例えばストリートビューに表示される住所の表記予測とか
  • データセットが既に公開されているので実践するのはそこまで難しくないはず
  • Courseraで勉強しよう

今後のAIについて

  • どうすればAIが社会的な問題や偏見を反映させないようにするか
  • 失業問題を引き起こすのではなくAIがみんなにどう恩恵をもたらせられることを目指すか

Deep Learning An MIT Press bookについて

  • 最初のほうに数学の基礎に焦点を当てた
  • 深層学習をやっていくなかで絶対に必要になる要素
  • 数学が苦手な人は苦痛を感じるかもしれない、学習経験への覚悟があれば絶対に乗り越えられると信じている

原著

Deep Learning (Adaptive Computation and Machine Learning series)

Deep Learning (Adaptive Computation and Machine Learning series)

Deep Learning An MIT Press book

翻訳版

深層学習

深層学習

  • 作者: Ian Goodfellow,Yoshua Bengio,Aaron Courville,岩澤有祐,鈴木雅大,中山浩太郎,松尾豊,味曽野雅史,黒滝紘生,保住純,野中尚輝,河野慎,冨山翔司,角田貴大
  • 出版社/メーカー: KADOKAWA
  • 発売日: 2018/03/07
  • メディア: 単行本
  • この商品を含むブログ (1件) を見る

Ryzenで自作PCを組んでみた

人生で2回目の自作PC組み立て。

特にこれといったこだわりはなかったのでエンジニア特有の流行りものに 乗っかりRyzen 5 2600xを中心にパーツを決めていこうとなりました。 kakakumag.com

ほぼこちらのブログに影響を受けパーツを選んでみた。 chimolog.co

パーツ構成

Amazonで購入

AMD CPU Ryzen 5 2600X with Wraith Spire cooler YD260XBCAFBOX

AMD CPU Ryzen 5 2600X with Wraith Spire cooler YD260XBCAFBOX

クーラーが付属しているので別途クーラーを買わなくて良いのは嬉しい。 オーバークロックするなら買い増しが必要らしい。 通称クマグリス、グリスもしっかりしたものを使いたい。 Ryzenで組むならGPUは必須。(Ryzen 5 2400G、Ryzen 3 2200Gは除く) ゲームをやるならWindows10買わないと。 500GBを購入、当時クーポンで1000円オフでした。 SSD安くなったなぁという感想。 ケースはケチる、予算があったらもっとカッコいいのを買いたかった。

ケーズデンキ Yahoo!ショップで購入

store.shopping.yahoo.co.jp Tポイントが5000ポイントくらい余っていたのでこちらで購入。

それをするには既にAMD Ryzenマザーボードを持っていないと出来ないため、初心者には敷居が高すぎる。PCショップに行ける人は、B350やX370を選ぶ時は店員にBIOSアップデートが出来ないか相談。

「AMD Ryzenで自作PC」を初心者でも出来るように徹底解説 | ちもろぐ より引用

上の条件に自分は合わなかったのでX470を選択しました。

ドスパラで購入

www.dospara.co.jp メモリは選択肢の幅を広げたい、オーバークロックしてみたい、相性保証が欲しいのでドスパラで購入しました。

www.dospara.co.jp 電源もメモリ同様選択肢の幅を広げたいのでドスパラで購入しました。

組み立て

組み立て途中の写真は撮り忘れてありません、作業に集中していると忘れちゃいますね。

組み立て前

f:id:wakame1367:20180613072129j:plain

組み立て後

f:id:wakame1367:20180613072139j:plain 裏配線ができることを組み立て中に気づく。

ほぼ半日かけて組み立てました、組み立て途中は最小構成で電源が入らない(原因は配線ミス)などトラブルありましたがなんとかなりました。

BIGLOBEのIPv6プラス接続サービスに申し込んでみた!

f:id:wakame1367:20170419204326p:plain:w600

通信速度が速くなった!

とりあえず21時以降のスピードが不安定だった点が改善されただけでもありがたいです。設定手順は以下リンク先を参考にさせていただきました。
akogare.hatenablog.com
ルーターはこちらを購入しました。

あとがき


うん、これは通信速度とは関係ないのか切り分けできてないので少し調べてみようと思います。

Max Payne3+DLC適用されない不具合

同じ境遇の方がいて解決に役立てれば・・・


f:id:wakame1367:20131128213449p:plain