nikkie-ftnextの日記

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

LPIC Lv.1学習メモ | パッケージ管理(rpmとYUM)

はじめに

だんないよ、nikkieです。
パッケージ管理の整理の続きとして、
RPMパッケージを管理するrpmYUMについてまとめました。

注意:動作については未確認です。vagrantcentos環境で確認予定です。

rpm

Linux - RPMおよびYUMパッケージ管理の使用

一般的にはYUMが使われ、rpmはあまり使われないと想定しています。

引数
用途
例文
パッケージファイル名 パッケージインストール
rpm -i nmap-5.51-2.el6.i686.rpm
(注:wgetでダウンロードしてある前提)
 
パッケージインストール
(詳細情報表示:v、進行状況表示:h)
rpm -ivh nmap-5.51-2.el6.i686.rpm
 
パッケージインストール(依存関係無視)
rpm -ivh --nodeps emacs-23.1-21.el6_2.3.i686.rpm
 
パッケージアップグレート
インストールされていない場合は新規インストール
rpm -U nmap-5.51-2.el6.i686.rpm
rpm -Uvh nmap-5.51-2.el6.i686.rpm
 
パッケージアップグレート
インストールされていない場合は何もしない
rpm -F nmap-5.51-2.el6.i686.rpm
rpm -Fvh nmap-5.51-2.el6.i686.rpm
パッケージ名 パッケージ削除
rpm -e nmap
 
パッケージ削除(依存関係無視)
rpm -e --nodeps emacs
 
指定したパッケージからインストールされたファイルを検査
rpm -V nmap
なし
インストールされている全パッケージについて
インストールされたファイルを検査
rpm -Va
照会モード(-q)
引数
用途
例文
なし
インストール済み全バッケージ一覧表示
rpm -qa
ファイル
ファイルがどのパッケージからインストールされたか表示
rpm -qf /usr/bin/nmap
パッケージ名
パッケージがインストールされているか照会
rpm -q nmap
 
パッケージの情報表示
rpm -qi nmap
 
パッケージに含まれるファイルの表示
rpm -ql nmap
 
パッケージの依存関係表示
パッケージファイル名
インストール前のパッケージの情報表示
(インストール前にバージョン情報を知る)
※-qiと同じ情報
rpm -qip nmap-5.51-2.el6.i686.rpm
 
インストール前のパッケージに含まれるファイルの表示
※-qlと同じ情報
rpm -qlp nmap-5.51-2.el6.i686.rpm

 

YUM

Linux - RPMおよびYUMパッケージ管理の使用(YUMツールの紹介)

DebianパッケージのAPTに相当するのがYUMという認識です。

引数
用途
例文
なし アップデート対象のパッケージリスト表示
yum check-update
 
インストールされている全パッケージをアップデート
yum update
 
リポジトリの全パッケージ情報とインストールの有無を表示
yum list
パッケージ名
パッケージのインストール
yum install nmap
 
指定したパッケージをアップデート
yum update nmap
 
パッケージのアンインストール
yum remove nmap
 
パッケージ情報を表示(インストールされていないパッケージについても表示可能)
yum info nmap
キーワード
キーワードを含むパッケージの検索
yum search nmap

 

終わりに

頭の中は整理できたと思うので、次は手を動かす時間ですね。
ちなみに、dpkgとAPTの整理はこちらです。

nikkie-ftnext.hatenablog.com

以下の教材で学習しています。(ネット上のリソースは必要に応じて使っています)

 

イベントレポート | MANABIYA DAY1 2限「DeNAにおけるAIの取り組み」#MANABIYA

はじめに

だんないよ、nikkieです。
MANABIYA 1日目のDeNA 内田さんによる「DeNAにおけるAIの取り組み」の聴講メモです。

 

講義の概要

【国内最大級のエンジニア向け技術祭典】MANABIYA -teratail Developer Days-

DeNA AIシステム部では「先端AI技術を活用して事業を成功に導くこと」をミッションとし、
AI研究開発と事業貢献の両立を目指して様々なビジネスでのAI活用に取り組んでいます。
本セッションでは、コンピュータビジョン、自然言語処理、強化学習の分野を中心に、
現在取り組んでいる新たな価値提供へのチャレンジについて紹介します。

機械学習に取り組んでいるので、興味を持って聞きに行きました。
事前知識として、オセロニアのバランス調整を強化学習を使ったAIで行っていることは知っていました。
(先日のrettypyで強化学習の話題になったときに教えていただいた) 
強化学習をバランス調整に活用。『逆転オセロニア』が目指す、ゲーム開発の近未来 – フルスイング

 

DeNAにおけるAIの取り組み

講義後の私のまとめツイートはこちら。項目ごとに掘り下げます。

組織

研究開発と事業を両立させていく
研究開発の目標はサービスへのコミット 論文を書くことが目的ではない
 研究開発の人間がサービスに入っていく
 ビジネスの立ち上げから研究開発の人間がプロジェクトチームに入っていける

先端技術のキャッチアップのために

  • 情報発信、社外発信
    ・社内勉強会 →ブログ見つけました:アーカイブ - Technology of DeNA
    ・国際学会聴講
    ・30%の工数はkaggleに取り組める kaggle実績は分析者の実績の証明という考え
     データサイエンティストは「kaggle枠」と呼ばれる ありとあらゆる手段でKPIを達成する
    ・今後:AIプロジェクトマネジメント(AI研究開発のマネジメントとは)
      ML Ops 安定したモデルのアップデート、安定稼働
  • 論文の再現検証のリソースが供給される
  • キャッチアップができなくならないようにアサイ

 

ドライバーモニタリング(コンピュータビジョン)

www.slideshare.netこちらのスライドの内容でした。

基礎タスクは画像分類。畳み込みニューラルネットワーク(CNN)により実現

CNNは2015年のResNetがデファクトスタンダード
内田さんがまとめたCNNのサーベイ論文はこちらだと思います。

mprg.jp

特徴マップ
4×4の例
(1,1)の特徴ベクトルは元の画像のある範囲(1,1)〜(3,3)の特徴を集約した情報が入る
 信頼度が0.9以上で物体がある→(1,1)を見てどんな物体か=1クラスの物体検出
+どういうクラスかという次元を追加(C次元)→これは車、人と検出できる(Cクラスの物体検出)
:ランドマーク検出(目や鼻などの特徴点の検出)
 まず顔があるか検出→ランドマーク座標を見る

実応用のためにはニューラルネットワークの高速化が重要
 枝刈り、畳み込みの分解、蒸留、早期終了(スライド21)

危険運転の前にアラートを出したい 例:「運転が荒い」→行動変容
どういう運転をしているのかは外の環境+ドライバーの状態

  • ドライバーの状態・・・ランドマーク検出:どこに目があるか→顔の向き
  • 外の環境・・・走っているレーンやまわりの車の情報
     画像のどこにレーンがあるか1次元(点)で出す

スマホやエッジデバイスで動かすには軽量化が必要。ここを頑張ったそうです。

 

オセロニアのバランス調整(強化学習)

www.slideshare.netこちらのスライドの内容でした。

ゲームの新鮮さを保つために、キャラクターやスキルを定期的に導入する。
熟練プランナーが設計するが、テストしてみないとバランスが崩れているかわからない。
→そこで、ゲームAIを使ってバランス調整

取り組んだこと:

  1. 教師あり学習
    そもそも教師ありとして学習できるのか検証。
     教師あり学習はDQNに着想。
     盤面を画像としてCNNに入れる。
     盤面の特徴ベクトルと特徴量の組合せ
    学習できそうとわかったので先に進んだ。
  2. 表現学習
    one-hotベクトルではキャラクター増えたら学習し直し
    似たようなキャラクターが同じようなベクトルになるような表現学習
    (=固定長のベクトルで表現できるようにした)
  3. 強化学習
    自己対戦を繰り返して強くなれるか
  4. 先読み機能
    手を打った後の盤面をランダムにプレイアウトし、どのくらいの確率で勝つかを打つ手の価値とする

強化学習はゲームが一番適用しやすい。
ただし、ゲームに限らず応用しようとしているとのこと。

 

感想

1限の染谷さんに続いてkaggleへの言及がありました。やっぱりkaggleなんですね!
DeNAのチーム体制は先端技術までカバーできているので、
どんな要望にも対応できそうな理想的なチームだと思います。


ここまでの体制を作ってもキャッチアップと案件のバランスには気を使うようなので、
一介のエンジニアが空き時間にディープラーニングを勉強したとしても
簡単には業務で利用できるようにはならないと覚悟したほうがよさそうです。
大変というのはやらない理由にならないですし、心躍る分野なので
私は取り組んでみようと思います。
当面の私の課題は、kaggleでの探索的データ解析の勉強(優先度高)と
ディープラーニングのキャッチアップになりますね。

内田さん、並びにMANABIYA運営スタッフの皆さま、
貴重なお話とそれを聞く機会をありがとうございました。

LPIC Lv.1学習メモ | パッケージ管理(dpkgとAPT)

はじめに

LPICの勉強を再開しました、nikkieです。
パッケージ管理が4種類あってぐちゃぐちゃなので、整理してみました。
今回はDebianパッケージを管理するdpkgとAPTです。
アクションだけでなく、引数のタイプ(パッケージファイル名なのか、パッケージ名なのか)も合わせて覚えるのがいいのではないかと考えています。

注意:動作については未確認です。今後環境構築し、確認予定です。

dpkg

Linux - Debianパッケージ管理の使用

一般にはAPTが使われるそうなので、資格をとるためにしか使いみちのない知識のような気がします。

引数 用途 例文
なし インストール済み全バッケージ一覧表示
dpkg -l
(注:アクションは小文字のL)
dpkg --list
 
パッケージのインストール状態を検査
dpkg -C
dpkg --audit
パッケージファイル名 インストール
dpkg -i tree_1.6.0-1_i386.deb
(注:wgetでダウンロードしてある前提)
dpkg --install tree_1.6.0-1_i386.deb
 
インストール
(インストールしようとしているものより新しいバージョンがインストール済みなら、インストールを行わない)
dpkg -Gi tree_1.6.0-1_i386.deb
 
パッケージファイルの情報を表示
dpkg -I tree_1.6.0-1_i386.deb
(注:アクションは大文字のi)
 
パッケージに含まれるファイルの一覧を表示
dpkg -c tree_1.6.0-1_i386.deb
パッケージ名 パッケージからインストールされたファイルを一覧表示
dpkg -L tree
dpkg --listfiles tree
 
指定したパッケージの詳細情報を表示
dpkg -s tree
dpkg --status tree
 
パッケージ削除
(設定ファイル残す)
dpkg -r tree
dpkg --remove tree
 
パッケージ削除
(設定ファイル削除)
dpkg -P tree
dpkg --purge tree
ファイル ファイルがどのパッケージからインストールされたか表示
dpkg -S /usr/bin/tree
dpkg --search /usr/bin/tree

 

APT

Linux - Debianパッケージ管理の使用(APTツールの紹介)

apt-get
引数
用途
例文
なし 最新のパッケージ情報を取得する
apt-get update
(/etc/apt/sources.listに設定したサイトに接続)
 
全パッケージを最新版にアップグレード(ただし、他のパッケージを削除しないものに限る)
apt-get upgrade
 
ディストリビューションを最新版にアップグレード
apt-get dist-upgrade
パッケージ名 パッケージのインストール
apt-get install apache2
 
パッケージのアンインストール
apt-get remove apache2

 

apt-cache

apt-cacheは対象のパッケージがインストールされていなくても動作する。

引数
用途
例文
パッケージ名 パッケージについての情報表示
apt-cache show apache2
 
パッケージの依存関係を表示
apt-cache depends apache2
キーワード キーワードを含むパッケージの検索
apt-cache search apache2

 

aptitudeについては優先度を下げています。
今回まとまったサイトを見つけられたので、今後の勉強が捗りそうです。

追記(3/28):以下の教材で学習しています。(ネット上のリソースは必要に応じて使っています)

 

イベントレポート | MANABIYA DAY1 1限「成長を止めない機械学習のやり方」#MANABIYA

はじめに

だんないよ、nikkieです。
MANABIYA 1日目の「成長を止めない機械学習のやり方」(クックパッド 染谷さん)の聴講メモをまとめました。

 

講義の概要

【国内最大級のエンジニア向け技術祭典】MANABIYA -teratail Developer Days-

2016年7月の発足以来、クックパッドの研究開発部は機械学習を用いた様々なプロジェクトに取り組んで来ました。
本セッションではまず機械学習を取り入れた組織における価値創造を阻害あるいは鈍化させる幾つかの要因を指摘し、
それらの要因について開発基盤やエンジニアリング、チーム構成様々な角度から考察します。
またさらに、そのような課題に対するクックパッドの取り組みを紹介します。

案件で機械学習をやっているので聞きに行きました。(MANABIYAを通してAI枠の講義に積極的に行っています)
2月のPyDataで登壇された方だったので、その時のスライドを確認してから講義に臨みました。

PyData.Tokyo Meetup #17 - データ分析の現場 - connpass 

 
 

成長を止めない機械学習のやり方

speakerdeck.com

第3次AIブームの後の幻滅期を乗り越えていくために:『成長を止めない機械学習のやり方』
クックパッドの知見を中心に『成長を止めない機械学習のやり方』を考えていく

 

組織編

問題:サービス開発とモデルの開発/デプロイのスピード感にギャップがある
モデル開発/デプロイの効率化 
  • デプロイ:API化、そのための共通基盤整備
    →詳しくは前掲のPyDataスライド

 

個人編

  • 個人にとって、目標/目的の具体化が重要
  • 実務でやるのが一番の近道
    現場でやるべきことは多く、これをやれとは言えない状態。
    1冊1冊の本で学べないことが多い
  • データ分析系のコンペもよい
    与えられた問題が明確というのが現場と違うが、
    限られたデータと時間でスコアを上げていくのが実務に近い
 

感想

個人にとっての成長を止めない機械学習のやり方は、やはりkaggleに行き着くんですね。
これはやるしかないな、kaggle!(kernelを覗いて勉強する予定)
幻滅期を見越した上で、地に足をつけて価値を生み出し続けるという姿勢を見習い、
一歩一歩機械学習を進めていきたいと思います。
 
自社サービスでの機械学習の利用については、こんな世界なのかと聞いていました。
私の機械学習の取り組みの中では色々と失敗がありましたが、
クックパッドさんも機械学習でやりたいことと現場の成熟度にギャップがあり、
多少の失敗をしつつも進めているのかもという印象です。
(どこも機械学習で苦い経験をしているんじゃないかと思います)

お話しいただいた染谷さん、並びにMANABIYA運営スタッフの皆さま、
貴重なお話とそれを聞く機会をありがとうございました。

イベントレポート | MANABIYA DAY2 1限「技術者としての成長のための技術トレンド」 #MANABIYA

はじめに

だんないよ、nikkieです。
MANABIYA 2日目の及川 卓也さん基調講演
「技術者としての成長のための技術トレンド」の聴講メモを公開します。

 

講演の概要

【国内最大級のエンジニア向け技術祭典】MANABIYA -teratail Developer Days-

ITは日進月歩に進化しており、1個人ですべての領域で最新技術を把握し続けることは難しくなっています。
技術者として、スキルを深め、領域を広げるとしても、そこには戦略が必要です。
たとえば、機械学習、IoT、XR (VR, AR, MR)、ブロックチェーンのような技術のどこまでを基礎教養的に知る必要があるのでしょうか。
また、どの領域の専門性を高めていく必要があるのでしょうか。
そこに万人に適用できる1つの解があるわけではありません。
個人個人が自分の目指す技術者像を考え、さまざまな試行をし続けることが重要です。
今回、私からはエンジニア、エンジニアリングマネージャー、プロダクトマネージャー、技術アドバイザーとしての働いた経験を元に、技術トレンドを技術者としての成長に活かす方法をお話します。

2日目参加の決め手になったのはこの基調講演でした。
機械学習、IoT、XR、ブロックチェーンといった現在の技術トレンドを十分に把握できているとはいえない中での手がかりになりそうなので期待していました。
(私が理解できているのは機械学習の一端にすぎません。ディープラーニングまでは立ち入れていません)
講演後の私の感想は以下です。ここに肉付けしていきます。

 

技術者としての成長のための技術トレンド

www.slideshare.net

以下のトピックからなります。

  • 知識を技能に発展させる
  • 異なるドメインを増やす
  • 自分が興味をもてる技術トレンドを追う
重要度順として、逆順で振り返ります。
 

いちばん大事なのは、自分が興味をもてるかどうか

機械学習に学ぶ
  •  強化学習(スライド59)

    →人間には動機が必要

    ・外発的動機づけ 給料上がる

    ・内発的動機づけ 自らの興味で学びたい

  • 転移学習:特定ドメインで学習したモデルを別ドメイン

    類似したドメインの技術は習得しやすい(スライド62)

トレンドと動機づけで考える、技術を習得するか否かのフロー:スライド69
  • 仕事で必要ならば習得
  • 仕事で必要ないがトレンドとして出てきた
     異なるドメインで興味持てる→習得
     異なるドメインだが心躍らない→やらない
仕事で必要でないことを仕事で必要なようにしてしまう手もある(スライド72)
これは英語を学ばなくてもいい状況がリスキーと考え、学ばざるをえない環境に身を置くということ(スライド45)
興味を持った技術に注目する:スライド74
  • 破壊的イノベーションは登場当時はおもちゃと呼ばれる(スライド75)
  • トレンドを追っていくときは、おもちゃを見つけた子供のような気持ちを大事に(スライド79)

 

成長戦略:異なるドメインを増やす

T型人間 基礎教養(広く浅く)+1つの専門性
T型人間の進化:スライド51
  • 専門外にも深める領域を作る

    ・Tの横棒(基礎教養)を厚くする=フルスタック

    ・π 専門性(軸)を増やす

  • 専門を深める(Tの縦棒を伸ばす)

  • 専門を広くする(Tの縦棒を太くする)

Tの縦棒(専門性)について
専門性の2軸目が1軸目と近いと価値が出ない→別方向のベクトルとする
n次元幾何学空間における容積を最大化する(スライド52)

藤原さん「レアカード化する」 希少化 =差別化
1万時間で100人のうちの一人
 仕事後の3時間で10年かかる (仕事中なら10年かからない)
1/100を3回掛け合わせる
このときベクトルが異なると価値が高まる(スライド53)

習得済みドメインの技術と同じドメインの技術は習得しやすい
→自分の汎用性が高まる:2つの異なるドメインを習得していれば、それぞれの関連技術を習得し、仕事に持ち込める(スライド55)

 

技能習得のためには、経験を含めた学習ループを回し、知識を技能へと発展させる必要がある

エンジニアとしての成長=知識を身に着けて、技能に発展させる(=使いこなす)(スライド31)

知識にはグラデーションがある:知っている、使える、使いこなせる(スライド32)

知識だけではプロとしては使えないレベル。プロは使える、使いこなせる

学習ループ:学習→知識→経験→学習→(スライド36)
知識を身につけるには学習
いくら勉強しても技能には発展しない
技能にするには経験や実践が必要
 学んだことを使い続けなければ技能に発展していかない
 (プログラミングスクールは使い続けるが足りない)
 →座学と実践がペア
経験そのものには価値はない。経験により何を学ぶか→スキルになる
経験3年が大事でなく、その内訳(スキル)が大事
 経験=ある環境において活かされるかどうか
ループは学習から始める:知らないものについて実践しようとは思わない→機会損失
 
自分史と技術トレンド振り返り:スライド29
  • 第2次AIブームは仕事として学べなかったトレンド
    乗れなくてもそのトレンドを体感していることが大事とのこと
  • インターネット×Windowsのかけ算で強みを出せた

 

感想

興味を持った技術トレンドを追うというのはシンプルな上に説得力もあります。
全て追う必要はなく、興味のある領域だけでよい、
追っていないトレンドも体験していることが後で効いてくるというメッセージに
全て追い切れないという不安を和らげていただきました。

1月から取り組んだ機械学習に興味を持てたので、kaggleで勉強を続けます。
仕事上の案件は4月から変わり、機械学習とは無関係になるかもしれませんが、
自分の心が踊る機械学習分野を追っていきます。

大学時代バリバリプログラミングをやってきたわけではない自分は
業務経験2年(実装に携わったのは半分程度)ではまだT字は形成できていないと実感しています。
心躍る分野を追って、短くても細くてもいいからT字の縦棒をまずは作りたいと思います。

私を含め、今の会社の新人エンジニアは軸が形成できていないように思えます。
案件を定期的に変えることで、若いうちに色々と経験させるという狙いなのかもしれませんが、
専門性なしに異なる技術トレンドの案件を渡り歩くループの中では、
T字の縦棒が形成できないんじゃないかと不安です。
(たどり着くのはTではなく、でこぼこしたー(いち)なのでは)
心躍る領域で軸を形成したいと強く思うのであれば、転職も有力な選択肢と認識しました。

及川さん、ならびに運営スタッフの皆さま、
貴重なお話とそれを聞く機会をどうもありがとうございました。

イベントレポート | 【サポーターズCoLab勉強会】Python勉強会(LINE Botハンズオン)#spzcolab

はじめに

だんないよ、nikkieです。
サポーターズさんで開かれた「Python勉強会」のレポートです。

 

勉強会の概要

【サポーターズCoLab勉強会】Python勉強会 - サポーターズCoLab より抜粋します。

今回の勉強会では、ハンズオン形式でPythonでLINEボットを作ります。

こんな話をします

実際にPythonでLINEボットを作ったアプリの話や、LINEの開発者登録、

アプリ登録、Python用のSDKの簡単な使い方について話します。

PythonでのLINE Botハンズオンということで興味をもちました。
 

ハンズオンの流れ

  1. Python3系インストール
  2. ngrokダウンロード
  3. LINEのチャンネル設定
  4. サンプルコードを動作させて疎通確認

 

LINEのチャンネル設定

ハンズオン中はPCブラウザからLINEにログインできず、チャンネル設定が進められませんでした。
(LINEからパスワードを変更し、それを入力してもログインできなかった)
同様の症状の方から、スマホのLINEを最新にしたらPCからログインできたという情報もありました。
帰宅後、パスワード管理ツールからパスワードをコピーしたら私もログインできました。
ハンズオン中はちょうどパスワード管理ツールが壊れていたので、目コピしたパスワードの入力間違えだったようです。(釈然としませんが。。)

Messaging APIのチャンネル作成後、以下の設定が必要でした。
(公開資料60スライド目から。今後機能追加するときの備忘録として記載します。)

メッセージ送受信設定:

  • アクセストークンを発行する
  • Webhook送信を「利用する」に変更
  • Webhook URLにはngrokのhttpsのアドレスを設定する。
    これはngrokを起動するたびに変わるようなので、都度変更が必要なようです。

LINE@の機能の利用:

  • 自動応答メッセージは「利用しない」に設定する

 

サンプルコードを動作させて疎通確認

  • pip install line-bot-sdk Flask
    ※Python3系の仮想環境(後述)を作って動作させています。
    Flaskは明示的にインストールしないといけないらしい
    (line-bot-sdkのインストールの中で自動的に入るわけではないらしい)

    GitHub - line/line-bot-sdk-python: SDK of the LINE Messaging API for Python.

  • 以下のサンプルコードをコピーし、「sample_app.py」として保存

    StudyContents/sample_app.py at master · PythonStudyGroupJP/StudyContents · GitHub

    (↑ソースコードパス変更によるリンク切れを発見したので、修正。2018/06/10)
    【フォルダ配置参考】
    python-line-bot/ ←ハンズオン用のフォルダ
     ├ env/ ←Python3系仮想環境(後述)
     └ sample_app.py
  • サンプルコードを実行:python sample_app.py
    Flaskはポート5000をデフォルトにするようなので、ngrokもポート5000指定で立ち上げる必要あり(スライド94、98、101)。
    公開資料をもとに進めた時、ここにハマりました
    (ngrokを立ち上げるたびにLINEチャンネルのWebhook URLの設定が必要になります)
  • 公開資料のようにsample_app.pyを修正したところ、ngrokとサンプルコードの間で疎通確認に成功しました!
    (ngrokとサンプルコードが同じフォルダになくても疎通確認まではできるようです)

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

 

感想

ひとまず疎通確認までできたのでブログ化しました。
今後は勉強会の他のソースコードを見てBotと会話してみたり、機能追加をしてみる予定です。
nkjmさんのQiita記事が機能追加の参考になりそうですね。

LINEのBot開発 超入門(前編) ゼロから応答ができるまで - Qiita

エンジニアとしてPythonを軸にしたいので、Pythonで今後LINE Botが開発できそうなことが大変嬉しいです。
画像や位置情報が取れるので、他のAPIマッシュアップ試してみます。

講師のFumiさん、準備〜ハンズオン〜資料公開とお疲れさまでした。
公開いただいた資料に沿ってひとまず疎通確認までできました。
勉強会の開催と資料の公開をしてくださり、本当にありがとうございます!
微力ながら次回はメンターや運営の手伝いなどお手伝いしたいと思いますので、お気軽にお声がけください。

 

終わりに:仮想環境の話

私がPythonを知ったのは、PyNyumonというイベントです。
そこで仮想環境(venv)を知り、以降は仮想環境を使うようにしています。

pynyumon/1_python_basics.md at master · pynyumon/pynyumon · GitHub

最近やっているDjangoチュートリアルでもvenvが使われていました。

Djangoをインストールしよう · workshop_tutorialJP
Pythonを始めようという方はvenvまで知っておくといいのではないかと思います。

私個人は最近、機械学習の勉強でフォルダを作るたびに
必要なパッケージ(numpy、pandas、jupyterなど)を仮想環境にpip installするのが手間に感じています。
それを解決するにはanacondaなのかなと考えはじめています。
(venvとどう使い分けるかというところから調査が必要な状態です)

 

今回のハンズオン出席者の皆さま、お疲れさまでした。
公開資料で皆さんもLINE Botが動かせることを願っています。

 

LT報告 | MANABIYA LT大会 AI枠 #MANABIYA

はじめに

だんないよ、nikkieです。
機械学習歴3ヶ月の私ですが、機械学習を始める方への提案をまとめ
3/23のMANABIYAでLTしてきました。

 

勉強会の概要

manabiya.tech

会場がもと学校ということで学び舎感に満ちていました。
AI枠のトークセッションでは深層学習をバリバリやっている方が登壇されていたので、
まだ深層学習まで進めてない身でLTしていいのか?とだいぶ憂鬱でした笑

LT「機械学習をはじめたいあなたへ」

gitpitch.com

概要

機械学習を始めたい」という気持ちの裏には機械学習で実現したいことがあると考えます。
私が趣味で開発するときは、実現したいことの達成を最優先にしています。(=やりたいことファースト)
そんなスタンスの私から、機械学習で実現したいことを最優先で達成するとして
機械学習を始めるならこうしてみてはいかがでしょうと提案してみました。

やりたいこと:「画像になにが写っているか知りたい」

→提案:機械学習でモデルを作らなくてもいい。Web APIを使えば画像解析ができる

これは実体験からの提案です。Web APIを叩くのは本当に簡単でした。

Python入門者でもComputer Vision APIを叩くのは怖くない - Qiita

Web APIの裏にはベンダ(上の例ではMicrosoft)が学習させたAIがあります。
APIを叩くことで学習部分を丸々ベンダに任せて機械学習のモデルを使っているわけです。

この種のAPIはたくさんあり、私もその一部しか把握できていません。
例えば、MANABIYAでハンズオンされた来栖川電算さんも
docomo developer supportから画像認識や動作推定のAPIを提供しているそうです。
会社紹介スライド(84, 91スライド目):

MANABIYA Machine Learning Hands-On

 

やりたいこと:「手元のデータで機械学習をやりたい」 

→提案:

  1. 自分にあった機械学習のツールを使おう
    Pythonを学んでも学ばなくても、数学の知識がなくても機械学習は可能
  2. 機械学習の考え方を勉強したら実務で役立った
  • カテゴリ値の扱い:one-hotエンコーディング
  • トレーニングデータとテストデータの分け方:ホールドアウト法/k分割交差検証

 

やりたいこと:「機械学習を勉強したい」

※私はやりたいことなしに勉強することはあまりやりません。
機械学習を勉強したいという方も一定数いらっしゃるようなので、
自分が今後勉強していきたいところを紹介しました。

→提案:探索的データ解析のやり方をkaggleのkernelから勉強しよう

 

他の方のLT

  • React Nativeは簡単なアプリならiOSAndroidでコードを共通化できるが、
    複雑なことをやろうとすると、React NativeとiOSAndroidの3つをいっぺんに学ぶ機会になるらしい
  • XR系のデバイスの被る問題、女性は髪が崩れるので嫌という意見は聞いたことあるけど、
    一人がかぶってほかの人は傍観者っていうのも言われてみれば問題だなー。
    みんなで同じものを見るって経験がしにくいデバイスということか。
  • VRエンジニアは数が足りてないので、違う分野からでも勉強すれば転身できるとのこと。人工知能エンジニアもきっと同じ

 

感想 

LTする前は引け目を感じてましたが、
準備からLTまででこの3ヶ月の総括ができたので、やっぱりLTしてよかったなと思います。
LTの機会をいただき、ありがとうございました!
当ブログは引き続きMANABIYA関連でアウトプットしていきます。