わかめの備忘録

TypeError: read_feather() got an unexpected keyword argument 'nthreads'への対処

Twitterで流れてきたこちらの問題についてちょっと調べてみました。

TL;DR

調査まとめ

以下上の問題を受けて調べたことをまとめました。

現象の再現

ツイートの件、再現するかを確認しました、確かに再現しました。

gist.github.com

原因調査

サクッと調べたらこんなissueを見つけました。 github.com

issueでのやりとりをまとめると、tl;drに書いた内容と重複しますが、pyarrow - read_featherがアップデートで削除されたデフォルト引数(nthreads)をpandas - read_feather側で残したままにしたのが原因。pandasの次のアップデートで修正予定。

原因調査 - 詳細

もう少し具体的に言うと、pyarrowのversionが0.10.0から0.11.0へ上がる際に以下のような変更が発生している。

def read_feather(source, columns=None, nthreads=None, use_threads=False):
def read_feather(source, columns=None, use_threads=True):

そして、問題のpandasのread_featherですが

pandas(0.23.4) - read_feather

featherのread_dataframeをそのまま返していることがわかります。

じゃあfeatherのread_dataframeはどうなっているかというと

feather read_dataframe

こちらはpyarrowのread_featherを返しています。

pyarrow read_feather

まとめるとこんな感じの依存関係になっています。

f:id:wakame1367:20190119181330p:plain:w300

というわけでpyarrowの変更がpandasにまで波及したことで、tl;drに書いた状況になってしまったということです。 また、この調査結果からfeatherを読み込むのにわざわざpandasのread_featherを使う必要はなく、pyarrowのread_featherを使えばよい。

追加調査

上の内容を受けてpypi - pandas(0.24.0rc1)がプレリリース版として上がっていたので修正されているか調べてみました。結果読み込めることが確認できました、次のバージョンが待ち遠しいですね。 gist.github.com

また、pandas 0.24.0rc1のwhatsnewから今回の変更点を列挙してみました。

  • Additionally we no longer depend on feather-format for feather based storage and replaced it with references to pyarrow (GH21639 and GH23053).

どうやら依存関係を下記画像の①から②へ修正した模様。

f:id:wakame1367:20190119173308p:plain:w300
pyarrowの依存関係

  • Deprecated the nthreads keyword of pandas.read_feather() in favor of use_threads to reflect the changes in pyarrow>=0.11.0. (GH23053)

pandas.pydata.org

おまけ

ところでpandasのwhatsnewに面白い一文があったので紹介します。

Warning The 0.24.x series of releases will be the last to support Python 2. Future feature releases will support Python 3 only. See Plan for dropping Python 2.7 for more.

pandasのバージョンアップ履歴を見ると今年中か来年には0.25にアップデートされそうなので、pandasのPython 2へのサポートは今年中、もしくは来年あたりに切られそうですね。 Python 2よ、さらば・・・。

pandas.pydata.org

以上です、ありがとうございました。

参考

世界各国の祝日特徴量を作る

upuraさんの記事でツイートを取り上げてもらいましたが日本の祝日の特徴量を作る場合、下記ライブラリを使うと便利です。

pypi.org

こちらの記事で使い方等簡単に説明されています。 upura.hatenablog.com

では日本以外の祝日の特徴量作るのはどうすれば?ということでこのようなライブラリがあることを知りましたので紹介いたします。

github.com

サンプルデータはupuraさんの記事から使わせていただきました。

gist.github.com

2018年を振り返る

皆様こんにちわ、こんばんわ、わかめです。 今年起きたイベント、主に仕事関係を箇条書きで書き出して振り返ってみます。

  • 2018年4月頃
    • 深層学習の研究開発にアサイ
    • 深層学習さっぱりわからんのでCourseraで勉強する
    • 技術書典4へ行ってみる
  • 2018年5月頃
    • Kaggleをやり始める
  • 2018年8月頃
    • 初めての転職活動を始める
  • 2018年10月頃
    • 派遣会社から転職
    • ゲーム開発・Vtuberとかやってる会社に転職する←???
  • 2018年11月頃
    • Signateに挑戦する→残念ながら結果出せず
    • 勤務先渋谷なので勉強会に顔を出し始める

去年の振り返りをやっていないので比較できないのですが、個人的に去年よりいろいろアウトプットできたなぁと思う2018年でした。ただブログさぼりがちだったので来年は1ヶ月に5記事くらいは書いていきたいなぁと思います。また、今年目標にしていた統計検定2級の合格をさっぱり忘れてたので来年こそは取得を目指そうと、あとKaggleのメダル1枚は確実にとりたいですね。

Twitter / Google / はてなブックマーク検索メモ

概要

昨日投稿したブログ記事、2018年過去記事の振り返りで使いました検索Tipsをメモがてらまとめておきたいと思います。 wakame1367.hatenablog.com サービス毎の検索欄に日付範囲でフィルターをかけることで当時話題になった記事を探すのに利用しました。

Twitter

Twitterでは検索欄部分に、キーワード名+日付範囲指定、例えば「kaggle since:2018-6-24 until:2018-6-30」で2018年6月24日から2018年6月30日までのツイートをフィルターにかけられます。

f:id:wakame1367:20181231134502p:plain

Google

Google検索では「ツール→期間指定なし」を続けてクリックすると次の画面が表示されるので、日付範囲を指定しました。 f:id:wakame1367:20181231140843p:plain

はてなブックマーク

はてなブックマークでは検索UIに期間指定する部分があるのでそちらで日付範囲を設定しました。 こちらページのURLを見る限り「date_begin=2018-06-24&date_end=2018-06-30」で日付範囲指定できるようですね。 f:id:wakame1367:20181231140133p:plain

参考

twitter.com

mag.app-liv.jp

Googleトレンド(Kaggle)を見て1年を振り返ってみる

こんにちわこんばんわ、わかめです。こちらの記事は今年1年であった日本でのKaggle関連のニュースをGoogleトレンドともに振り返ってみようというものです。

振り返ってみようと思った動機として、Kaggle-ja-slackの規模が今年になって急に大きくなったなぁという印象があったからですね。upuraさんのスライドから引用するとだいたい500member / 月の伸びなんですが・・・すごいなぁと。

upura.hatenablog.com

ちなみに最新のKaggle-ja-slackの参加人数はこちらになります。まだまだ今後も増えていきそうですね!

またKaggle-ja-slackに興味ある方はこちらから参加できますのでぜひ参加してみてください。(宣伝)

というわけで本題に入ります。下のグラフはGoogleトレンド、検索キーワードを「kaggle」に設定、日本限定で検索トレンドを可視化したものですね。 こちらを独断と偏見でピークポイント(赤丸で囲った部分です)を決めまして、その付近のKaggle関連のニュースを振り返ってみたいと思います。

f:id:wakame1367:20181230164623p:plain
独断と偏見で決めたKaggleトレンドのピークポイント

ピークポイント8個それぞれの期間はこんな感じになります。

だいたい1ニュース / 月があったようですね。(7月8月話題がないのは皆さん夏休みだったからですかね)それでは期間ごとに振り返ってみましょう。

2018年3月4日 - 2018年3月10日

ヤフー、エンジニア募集要項必要スキルにKaggleというワードが!

こちらの記事の一般の人からすると「新卒でも年収650万狙える!?」というのが第一印象だったのではないかと思いますが

Kagglerからすると印象に残ったのは

(4)Webサイト「Kaggle」のコンテスト(単独参加)でトップ10%に入賞

という点だったと思います。 www.itmedia.co.jp

上のニュース記事を受けてこちらのツイート(上の記事リンク出してからのY社はまったく隠れてませんね・・・w)

残念ながら未だに私はシルバーメダル取れてませんorz

2018年4月1日 - 2018年4月7日

DeNA、業務時間にKaggle参加を推奨する制度を導入

4月に入ってすぐですね、すごいニュースが入ってきましたね。エンジニア界隈がざわついた瞬間でもあると思います。 dena.com

このニュースを見て一番驚いたのはこういう前置きは書きつつも

業務Kaggle割合は、社内業務アサインの工数目安を規定するものである。アサインされた業務においてはランクにふさわしい高い成果を出し、データサイエンスチームとしての信頼を保たなければならない。 Rank SS(Kaggle100%)の場合、主担当してアサインされる社内案件業務はないが、会社を代表するデータサイエンティストとして、社内の分析相談に真摯に応えることは求められる。

RankSSであればKaggle業務100%に業務時間を使えるということだったと思います。

2018年4月15日 - 2018年4月22日

技術書典4にてKaggleチュートリアル本がバズる

私も行ったはずなのにあまり記憶が・・・ 4月22日は技術書典4の開催日でしたね。

techbookfest.org

そしてそちらで販売されたkaggleチュートリアルブックがバズっていたという記憶が印象に残っています。

note.mu

著者のcurrypurinさんは執筆後怒涛の勢いでKaggleのメダルを取得しており、後少しでKaggleMasterという手前に迫っております。

www.currypurin.com

2018年5月6日 - 2018年5月12日

Kaggleは役に立たない?

Kaggleは役に立たないというタイトルに反して、内容はKaggleと実務との関係性を分析している記事です。 ただ記事で指摘されている通り

脳みそを空っぽにしていろんなモデルや特徴量を作ってアンサンブル たくさんランを流してxgboostのscoreの流れをぼーっと眺める 画像コンペでのトレーニングデータへのラベリング とか、何やってんだろと思うこともあるのは確か。

自分でもスコアを上げるためによくわからないことをやっているなと自覚することはあります。 特にDataLeakageに関してはパズルと揶揄されることもあったり・・・。

月刊: Kaggleは役に立たない | threecourse's memo

2018年6月24日 - 2018年6月30日

機械学習を初めたいなら何をやれば→Kaggleで手を動かしてみる!

geek-out.jp

また仁科さんは、オンラインでのデータ分析コンテストサイト「Kaggle」を勧める。「簡単な問題から難しい問題までそろっていて、チュートリアルが用意されているものもあるので、機械学習の基礎を手元で簡単に学ぶことができる。入門としてお薦め」と話す。

これに関しては私も同意です。Kaggleは基本初心者を歓迎しています。例えばKaggleLearnというデータサイエンスを学ぶためのコースを用意していたり、またカーネルという仕組みは手元にインターネットに繋がるマシンさえあれば、PythonやRのコードを動かすことができるバーチャルマシンを無料で動かすできるというものです。

2018年9月9日 - 2018年9月15日

Home Credit Default Riskにおいて日本勢多数入賞!

入賞報告多くて全部取りあげるのが難しいくらい入賞されている方が多かったです。

なんでこんなに入賞する人が多くなるのかについて少しKaggle入賞のシステムを簡単に説明しますと、基本上位3位までが賞金授与対象なのですが、参加人数に応じて割合でGold/Silver/Bronzeメダルをゲットできる枠があります条件については下記リンク記事が詳しいです。

www.currypurin.com

今回で言うと7198チームが参加していたのでGoldがトップから24チーム、Silverが次いで335チーム、Bronzeが次いで360チーム、入賞対象が全部で719チームになったコンペでした。ちなみに1チームのメンバー人数制限はなかったので何人でもメンバー集めてチームを組めました。パッと見たところ20人のチームが最大ですかね。そんなこんなで入賞報告が多かったわけです。 (余談ですがこんなことがあったので1チームのメンバー人数制限ができたんですかね。)

入賞報告ブログ紹介

note.mu

www.acroquest.co.jp

toshikishimizu.hatenablog.com

amalog.hateblo.jp

Google AI Open Images - Object Detection TrackにおいてPFNが準優勝

Kaggleの話題になるとP社とD社が名前に挙がる説

下記事はログインしないと記事内容を読めないので何があったか説明しますと www.nikkan.co.jp

こちらのKaggleコンペの内容は1枚の画像から複数の物体を認識するタスクですね。

https://storage.googleapis.com/openimages/web/images/c159532248cb84da.png

上の画像を見る限りすげー難しそうなタスクだということはなんとなくわかると思います。

そしてこちらのコンペで準優勝したということですね、すごい!

f:id:wakame1367:20181230153529p:plain

一時期優勝したメンバーのアイコンのSlackカスタム絵文字がKaggle-ja-slackで流行ったのが面白かったです。

Kaggle - google-ai-open-images-object-detection-track - leaderboard

上の内容を書き終わった後にこちらの記事を見つけました、コンペ内容と結果について端的にまとまっているのでこっち読んだほうが要旨はすぐ把握できそうですね・・・。 www.preferred-networks.jp

2018年10月21日 - 2018年10月27日

MANABIYA#2の1枠にてKaggleが取りあげられる

こちらのイベントも私は不参加でしたが、当時ライブ放送されていたのでそれを見ながらTwitterで実況してました。 manabiya2.peatix.com

10/21 (日) - Day 3 6限目 (16:30 - 17:10):【3-6】Special Session:キスモ「Kaggleで変える日本の機械学習活用」

発表の内容はKaggleの紹介とKaggleが実務へどう役立つかについての発表でした。コンペに参加する手前様々な手法を試す機会がある点がカードゲームで言う手札を増やせるよというお話でした。

MANABIYA#2に大越が登壇し、Kagglerとして発表しました | 株式会社キスモ

2018年12月2日 - 2018年12月8日

KaggleMeetup#5開催!

ちょっと時期はずれますが12月1日にKaggle Tokyo Meetup #5がありました、私は参加登録したタイミングが遅くて残念ながら参加できませんでした。#kaggle_tokyoのハッシュタッグを当時見てましたが行けなかったのはだいぶ痛手だったなぁと・・・、次回はぜひ参加したいですね。 connpass.com

Kaggle Grandmaster/Master or 金メダル保持枠とKaggle Expert or 銀メダル保持枠が前回と比べてそれぞれ約3倍、約2倍増えてるのはすごいですよね。

f:id:wakame1367:20181230130107p:plain
Kaggle_Meetup#4参加人数
f:id:wakame1367:20181230130136p:plain
Kaggle_Meetup#5参加人数

Kaggleアドベントカレンダーが始まる

全体的にKaggle実践的なTipsや解法の共有があったのでとても勉強になりました。 qiita.com

上のアドベントカレンダーが埋まったのでしれっとその2が作られていたのが面白かったです。 qiita.com

この記事を書いてて思ったのはこの記事をアドベントカレンダーに登録しておけば良かったのではと。

Signateプチ炎上

Signateは日本版Kaggleみたいなところがありますし関係性は少しながらあると思いますので取りあげました。 Signate登録時の個人情報を異様に要求してくるってところですね、当時学歴(大学)入力がオプションではなく必須だったのがびっくりしました。 blog.shikoan.com

あと自分の何気ないツイートが炎上を加速させた気がします。

今は掲載されてないようですが、個人的に面白かったのはこの画像ですね。 f:id:wakame1367:20181230132007p:plain

最後に、Kaggleという結構ニッチな界隈だったつもりがいつのまにかニュース記事に取りあげられたり、雑誌の1コラムに取り上げられたりとネタに事欠かない凄まじい1年だったなぁという感想です。

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 裏配線ができることを組み立て中に気づく。

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