nikkie-ftnextの日記

イベントレポートや読書メモを発信

イベントレポート | みんなのPython勉強会#31 #stapy

はじめに

遅くなりましたが、明けましておめでとうございます。nikkieです。
本年もアウトプットを継続していきます。
今回は「みんなのPython勉強会#31」にお邪魔してきました。
2018/01/24 勉強会の資料を追加しました。

勉強会の概要

みんなのPython勉強会#31 - connpass

概要

「みんなのPython勉強会」では、Pythonを中心としてプログラミングを仕事、研究、趣味など様々なシーンに生かす方法を一緒に学びます。プログラマ、WEBエンジニアに限らず、初心者からマスターまで様々なレベルの、いろいろな分野の人が集まるので、「みんな」の勉強会です。お気軽にご参加ください。

 31回のテーマは「オープンソースを武器にする」だそうです。

勉強会プログラム

Pythonでスタートして、Pythonを仕事にするまでの話」

量子コンピュータプログラミング入門」 

python人工知能」 

Pythonを書いて食べていきたいと最近夢想しているので
Pythonでスタートして、Pythonを仕事にするまでの話」を楽しみに参加しました。

以下、講演中のメモをもとに振り返ります。

Pythonでスタートして、Pythonを仕事にするまでの話」

gitpitch.com

「火を焚べ続けるのに必要な3つのこと」のうち素振りの話が特に印象に残りました。実践していきます。
・興味があったらすかさず手を挙げる
・チャンスを逃さないために日頃から素振り
Pythonへの興味と情熱

以下講演内で興味をひいたトピックです。()は私の感想です。
・コードが書けるエンジニアになりたい(ほんとそれ!)
・LT駆動開発(#stapyはLTしやすそうな雰囲気でした。次回狙ってみます)
・仕事探しでPyConJPのスポンサーをチェック(なるほど)
・コミュニティに入ると技術に対してアンテナを張れる、かつ、エンジニアと繋がれる(本当に一石二鳥)

量子コンピュータプログラミング入門」

qiita.com

量子コンピュータは全く追えていない分野だったのですが、
IBM Qなら無料で使うことができるというので少し身近に感じました。

IBM Quantum Computing で計算してみよう

学習ツールの一つとして紹介されたQiitaのアドベントカレンダーを見ると、
少しキャッチアップできそうです。

量子コンピュータ Advent Calendar 2017 - Qiita

python人工知能

www.slideshare.net

機械学習をここ最近勉強しているため、勉強前と比べて理解できる部分が増えてきた実感があります。(と言ってもまだまだですが。。)

・分類:CNN(画像解析)、RNN(時系列解析)、DQN(自動運転、ゲーム)、GAN(キャラクタ生成)
Deep Learningの他にSVMなど機械学習のモデルを並列で用意して出力のいいところどりをするアンサンブル学習
・文章に対して「政治」「スポーツ」のようなジャンル分けをDeep Learningで行う場合、各ジャンル1万文の学習データが必要

興味深かったLT

www.slideshare.net

ツイッターリツイートをトリガーにして、読むべき論文のPDFをIssueに登録する自動化LTは
GitHubのIssueをTODOリストとして使うという発想に感服しました。
他にはWindowsで環境構築するLTもありました。

WindowsでAnacondaを使う環境を作ってみた

終わりに

Pythonで集まったところ、量子コンピュータ機械学習まで話が広がる会で
すごいコミュニティだ、継続して参加していきたいと感じました。
講演者・勉強会関係者の皆さま、並びに出席者の皆様、どうもありがとうございました。

資料はアップされるそうなので、確認次第更新します。

Azure Machine Learningの初歩の初歩

はじめに

本年もお世話になりました。nikkieです。
気になっていた「Azure Machine Learning」について調べてみました。
今回はまだ触っていません。機械学習についてまとめた記事です。

元にした資料

2017年3月に開催されたNSStudy #11の動画や記事を元にしました。
(公開していただきありがとうございます!)

講師の畠山さんのスライドを探したところ、以下のものが近かったです。

www.slideshare.net

 

機械学習とは

機械に学習させること。
=データの中のパターンをコンピュータに探させる
→そのためには人が機械に答えを教える必要がある

機械学習では過去にないパターンにも答えを出そうとする。
→if文を書いて実装するのとは異なり、機械学習では汎用性が得られる

機械学習統計学に基づく。

機械学習の主な用途

  1. 回帰(Regression);値を予測する 教師あり学習
  2. 分類分け(Classification):分類を予測する 教師あり学習
  3. クラスタリング(Clustering);データの構造を理解する 教師なし学習

 

注意点

・機械に学習させる上で、人間が判断するべき箇所がある。

  • データ(CSVを想定)の中でどの列を解析に使うのか
  • データの分布に対してどのような境界線を引くのか
    (例:線形か非線形か=アルゴリズムの選択)

・データの用意が一番大変。
 →Azure Machine Learningに用意されているサンプルデータを参考にするとよい

・1件の例外も許してはならないと考えてしまうと過学習(Overfitting)に陥る。
 (過学習=汎用性が損なわれた状態)
 例外が嫌ならif文を書いて実装したほうがよい

・データが増加するとモデルを再度作成する。
 データの加工、モデルの評価を継続的に行う心構えが必要。

・画像や音声の解析は機械学習よりもディープラーニングに分がある

終わりに

機械学習において例外は受け入れるという考え方は勉強になりました。
汎用性との間のトレードオフということなのだと思います。

適切なアルゴリズムの選択には統計の知識がいるので、
使い始めるのは簡単そうですが、使いこなすのが難しそうなツールという印象です。

心構えはできたので、次は実際に触ってみようと思います。

候補

 

イベントレポート | IoT縛りの勉強会! IoTLT vol.34 @ teratail (レバレジーズ) #iotlt

はじめに

コミケ楽しい! nikkieです。
12/26に開催されたLT会のイベントレポートです。
LT会中のツイートを元に興味深いトピック4点を備忘のために残します。
 

勉強会の概要

【増席】IoT縛りの勉強会! IoTLT vol.34 @ teratail (レバレジーズ) - connpass

業界初?! IoT縛りの勉強会/LT会です! 大好評を受けての第34回開催!
IoTというワードがバズワードになりつつあります。
とはいえ、IoT領域には関連する幅広い知識や技術があります。

また、アイディアやインスピレーションも重要です。

この会は個々が持っている知識や開発していることの情報共有や発信の場になります。

IoTに関するLTならなんでもありの勉強会です。
インスピレーションを得るために参加し、
私自身では絶対に浮かばないようなアイデアを毎回楽しませていただいています。
参加者が多いので、ツイッター実況が盛り上がるのも楽しみです。

1. Node-RED

こちらのLTに関連して

speakerdeck.com

Node-REDはIBM Cloud(かつてのBluemix)上でしか使ったことがない立場でツイートしたら、
以下のように教えていただきました。

調べてみたところ、Node-REDってラズパイに入ってるんですね!(2015 Novemberバージョン以降)
ラズパイに標準搭載されてるならプログラミングの敷居が下がりますね。

Node-RED日本ユーザ会 : Running on Raspberry Pi

 

2. TwitterBotAPIとして利用

Google Home大喜利をさせるLT

  1. Google Homeが受け取った文字列をTwitter大喜利Botに投げる
  2. 大喜利Botから回答(リプライ)が来るのを監視し、文字列をGoogle Homeに渡す
  3. Google Homeが読み上げて、大喜利回答

埋もれてしまい見つけられなかったのですが、
このLTに関連して見た「Twitter BotAPIのように使っている」というツイートが印象に残っています。

 

3. Wio LTE

2名の方がLT。SIMを挿せるデバイスで、IoT界隈ではHotなようです。
そのうち1名の方の記事がこちら。

qiita.com

 

4. スマホタップ操作自動化 

発想し、実装しちゃうのが本当にすごいと思います。
各種ソシャゲーも自動化できちゃいそうな気がします。

qiita.com

 

ステータスをTよりもIに振っているエンジニアですが、
LT駆動開発ということで2018年は登壇を目指してみたいところです。

LPIC Lv.1学習メモ | dfとdu

はじめに

だんないよ、nikkieです。
dfとduがセットで選択肢に登場し、どっちがどっちかわからなくなったので
区別の仕方をまとめてみます。

dfとduはこう区別する!

コマンドの成り立ちで区別

df = disk free

ファイルシステムごとの使用状況を確認するコマンド
空き容量も確認できるからdisk free → df

du = disk usage

ファイルやディレクトリが占めている容量を表示するコマンド
使っている容量を表示するからdisk usage → du

以下が参考になりました。

LPICよくある質問集第②回~コマンド由来編~その7 | TECH Projin

df

Man page of DF

df は各ファイルシステムにおいて、 すでに使用中のディスクの量と使用可能なディスクの量を表示する。

du

Man page of DU

du はディスクの使用量を表示する。 対象は指定したファイルと、 それをルート (根) とする階層中にある全ディレクトリである。

 

今後はそれぞれのオプションを調べ、一覧にまとめてみたいと思います。

LPIC Lv.1学習メモ | /proc

はじめに

だんないよ、nikkieです。
先日の勉強会でアウトプットありきにすることを学んだので
現在勉強中のLPIC Level1について勉強メモを公開していきます。

今回は「/proc」についてまとめます。

/proc

以下のMan Pageをもとにまとめています。(引用部分は斜線)
http://linuxjm.osdn.jp/html/LDP_man-pages/man5/proc.5.html

proc - プロセスの情報を含む擬似ファイルシステム

ディレクトリ/ファイル名
説明
/proc/bus
インストールされている各バス用にサブディレクトリがある。
/proc/bus/pci
 
いくつかのサブディレクトリがあり、 PCI バス・インストールされているデバイスデバイスドライバの情報が書かれた仮想ファイルがある。
/proc/bus/pci/devices
PCIバイスの情報。lscpiでアクセスできる
/proc/bus/usb/devices
USB デバイスの情報。lsusbでアクセスできる
/proc/cmdline
ブート時に Linux カーネルに渡された引き数。
/proc/cpuinfo
CPU およびシステムアーキテクチャーに依存する項目を集めたもの
/proc/dma
登録されている ISA DMA (direct memory access) チャネルのリスト。
/proc/interrupts
IO デバイス毎の CPU 別の割り込み回数の記録に使われる。
/proc/ioports
現在登録され使われている I/O ポート領域のリスト。
/proc/modules
現在システムにロードされているモジュールのテキスト形式のリスト。 lsmod(8) も参照。

 

/proc以下のファイルがいろいろなところで出てきて混乱気味でしたが、
1箇所にまとめられてすっきりしました。

つかめていない概念や用語がありますが、学習が進むに連れて、追記しようと思います。

イベントレポート |【サポーターズCoLab勉強会】若手エンジニアが転職に困らないように今から実践できること

はじめに

だんないよ、nikkieです。
「若手エンジニアが転職に困らないように今から実践できること」のイベントレポートを綴ります。
 

勉強会の概要

【サポーターズ勉強会】若手エンジニアが転職で困らないように今から実践できること - サポーターズCoLab

 

こんな話をします

  • 会社から求められるエンジニアの成果、役割
  • 会社にロックインされないスキルを身につける
  • 普段から技術的深掘りポイントを探す
  • ブログ、イベントでアウトプットする
  • OSSへの初めてのコミット
発表者はsasaki nobuyaさんでした。
文系出身のエンジニアということで親近感を感じました。
 
 

まとめ

  1. 会社は社員のキャリアの世話をしてくれない
    自分のキャリアは自分で切り開く

  2. 外で評価されるにはアウトプットしないといけない
    アウトプットありきで業務に取り組む

  3. チャンスをつかむにはコミュニケーション(人付き合い)が大切

アウトプットありきで業務に取り組むという姿勢が非常に勉強になりました。

 

現状

文系出身エンジニア2年目

SIerかWeb系かと言われればWeb系

1年近く製薬・医療分野のウォーターフォール型プロジェクトのドキュメント作業に従事しているが、
実装は1/10の期間もなく、エンジニアとしてのスキルが身についている実感がまるでしない

→開発経験が1年に満たないエンジニアは転職できるんだろうか、
 アウトプットを始めてみたけどどうすれば転職に役立てられるのか

 そういったところを知りたいと、今回の勉強会に参加しました。

 

アウトプットありきで業務に取り組む

  • 業務中の目の前のタスク解決がLTのネタにならないかと考える(自作ライブラリの例)
    →一般的な問題解決を行う力を磨く姿勢につながる
  • 自分がメジャーなツールに詳しくなってアウトプットするという動機で
    業務で使うツールを選んでもよい(AWSのterraformの例)
  • 勉強会のメモもアウトプットに使える
    (アウトプットの質は気にしない。名刺や職歴だと思えばいい)
  • アウトプットを意識したら技術的な深掘りポイントがどんどん出てくる

 →アウトプットありきの姿勢はロックインを避けることにもつながる
 (ロックインとは社内でしか通用しない状態と理解しました。つまり私です)

 

これから

業務に絶望していましたが、そこから目を背けるのではなく、
利用できるものは全て利用し、アウトプットのネタを必死に探します。

業務時間の中でアウトプットする時間を確保するのが直近の目標になりました。

成長の余地がないドキュメント業務とかやってられるかああああああ!!!

 

いまはまだ入門者レベルですが、自分が作りたいものを実装できるようになるのが目標なので、
チャンスを掴むために、いろいろな人に声かけていくのも実践していきたいです。
(スキルを磨くためにいずれは副業もやりたい)

 

今回の勉強会関係者と出席者の皆さま、貴重なお話とそれを聞く機会をありがとうございました。

イベントレポート | 【Cogbot 勉強会!】第9回 Azure ML & CNTK #cogbot

さや香歌のおにいさんへのコールがツボでした、nikkieです。
先日Cogbot 勉強会に行ってきました。備忘録としてレポートを残します。

勉強会について

cogbot.connpass.com

本会は、Microsoft Cognitive Services と Bot Framework を中心に、コグニティブとボットを一緒に勉強する会です。

個人的な理解ですが
 Microsoft Cognitive Servicesは人工知能API
 (画像のタグ付けや、翻訳、Q&A作成など20以上)、
 Bot FrameworkはSlackやSkypeなどさまざまなチャネルにBotを公開できるBot作成ツール
と認識しています。
詳しい説明はMicrosoftエヴァンジェリストの方々の資料にお譲りします。 

 

今回のテーマ

今回は、機械学習(ML)の巻!Azure Machine Learning (AzureML) で始めよう!深層学習(DL)向け CNTK もちょっと解説。

上でも引用した勉強会のconnpassページから。

CNTKは6月に参加したハッカソンの事前勉強会でも耳にした言葉だったので
そのときのスライドなどを振り返り、予習して参加。

 

予習

目指せ、最先端 AI 技術の実活用! Deep Learning フレームワーク「Microsoft Cognitive Toolkit」へ踏み出す第一歩 | de:code 2017 | Channel 9

こちらの動画で予習しました。(6月に参加したハッカソンの事前勉強会とほとんど同じでした)

CNNは次の2つのレイヤーを含むニューラル・ネットワークだそうです。
・コンボリューション(Convolution)レイヤー:局所的なフィルタをずらして適用する
  画像の局所的な特徴を包み込んだまま出力へ渡してくれる

・プーリング(Pooling)レイヤー:範囲の最大値を取り出す
  写り方がずれても(画像がぶれても)写っているものを捕捉できる

CNNという言葉だけ知っている状態から少し理解が前進しました。

 

講義

諸般の事情により受付締め切りぎりぎりに滑り込んだので、講演は全部聞けていません。
スライドを確認したところ、予告通り
Microsoft Cognitive Toolkit (CNTK)
・Azure Machine Learning Services
の2本立てという印象です。

www.slideshare.net


予習していなかったAzure Machine Learning Servicesについてはそんなものが出てたの?と驚きでした。

 

ハンズオン

Cogbot no9 CNTKハンズオン資料

予習もしていたCNTKの方に取り組みました。
jupyter notebookは触るのが初めてだったので、おっかなびっくりでした。
深層学習の題材で手を動かすのも今回初めてでした。

取り組んだのは以下の3つです。(残り2つはGPUでないので断念)

#1 CNTK MNIST by DNN
#2 CNTK MNIST by DNN with Trainer
#3 CNTK MNIST by CNN

#1, 2の3層のモデルから、#3では8層のモデルとなり、CNNは処理に時間かかることを体感しました。

#1と#2でエポック数(学習試行数の認識)を20に揃えたらどうなるか
素人目にも気になったのでやってみました。

f:id:nikkie-ftnext:20171203235321p:plain

f:id:nikkie-ftnext:20171203235335p:plain

Trainerを導入していないDNNのほうがエラー率が低いという結果になりました。
(解釈の仕方あっているのかな??)
このあたりは深層学習に入門しないと解釈が難しいという印象です。。

 

まとめ

ぎりぎり参加に対応していただき、関係者の皆さんどうもありがとうございました。

Machine Learningの方のハンズオン題材も時間を見つけてやってみたいと思います。
どちらもハッカソンなどで使えるようキャッチアップしていきたいところです。