チラシの裏の設計書

プログラム開発、データ分析からロボット作りまでものづくり全般を思うがままに書き連ねたブログ。

Mac買ったので初期設定メモ

MacBook買ってみました。

あ、すいません、ちょっと見栄を張りました、2017年モデルの12インチ「MacBook」を買ったと言いたいところですが、お財布事情が許してくれなかったので2013年モデルの「MacBook Air」を中古で買いました。

Mac初心者としては十分です。

これまでApple製品にほぼ無縁だったので、「Macの使い方メモ」みたいな低レベルな記事が増えるかもしれませんがご容赦ください。

 

ということで早速そういうたぐいのメモを。

初期設定する

ああ、こういう記事ってありがたい。

matome.naver.jp

ushigyu.net

もうすこし操作に慣れてきたら、インストールしたアプリまとめとか書きたいです。

とりあえずvivaldiを入れてみると、やたらクラッシュするのでちょっと悲しいです。

 

ターミナルを見やすくする

Mac自体はまだまだわからないことだらけですが、「とりあえずターミナルが使えれば何とかなるんじゃね?」という思想のもとターミナルを使ってみます。

お、、、なんか色分けとかがされなくて使いづらいぞ。。。

ということで、ターミナルの設定をします。

ほぼ参考サイトのまんまです。

www.stdio.jp

big1to.com

いい感じになりました。

f:id:stkdev:20170629224645p:plain

 

(さて設定系は早く終わらせて技術的な記事かかなきゃ。)

【ネタ】東京−大阪間で流し素麺しようとするとスカイツリー44本分の高さから流せば良いらしい

完全にタイトルで出落ちです。ネタ記事なのでご注意ください。

 

書きたいことがいろいろとある今日この頃ですが、ごたごたしてたりネット環境が不安定だったりしてとち狂ってしまった結果、ネタ記事でも書いてお茶を濁しておくことにしました。

 

・調査テーマ

東京から素麺を流して大阪でキャッチするにはどのような設備がいるのか

 

・調査1:角度

素麺を流すレールはどのくらい角度をつけるのか調べたところ4〜5度程度という記述あり。

市販の流し素麺器もだいたいそのぐらいの角度のようだ。

ということで4度と仮定する。(適当)

なお、うまく流すコツとしては角度浅めで水多めだそうだ。

 

・調査2:レールの長さ

東京ー大阪の直線距離が401kmだそうな。

角度4度とするとスライダー自体は402km必要になり、流し始める位置は地上28kmとなる。

 28kmというのはスカイツリー44.2本分、富士山7.4個分である。

なお、上空28kmというと成層圏に位置する。入道雲の遥か上、ジェット機の高度の2倍ぐらいの高さであり、外気温はマイナスである。いい感じに素麺が冷えそうである。

 

f:id:stkdev:20170629024340p:plain

・調査3:竹何本いるか

やはりレールは竹で作ってこそなので、竹が何本必要か計算してみる。

竹はかなりの種類があるようだが、成長速度が早く大きく育つ「真竹」や「孟宗竹」を使うと仮定する。

※参考 http://ww3.tiki.ne.jp/~kondou/take/take.html

これらの竹は20m程度に成長するらしい。また大量の竹が必要になると想定されるため竹林の密度も確認しておくと、700〜1500本/1000平方m程度。

※参考 http://www.pref.kagawa.lg.jp/kankyo/midori/tikurin/siryou1.pdf

1本につき、15mを利用できるとすると、半分に割るので30m分のレールが作成できる。そうすると402kmのスライダーを作るために13400本の竹が必要になり、これは約116m四方の竹林を刈り尽くすことで準備できる。今の季節なら同時にタケノコも収穫できて一石二鳥である。

 

追記1

 さて、どうでもいい日記を書いてリハビリもできたので、次からまじめに書いていこう。

 

追記2

そういえば小さい頃、空想科学読本をよく読んでいました。ああいう記事が書けるようになりたいというのがブログを書くモチベーションになっているような別にそうでもないような。

 

SIerからみるデータサイエンティストの立ち位置

↓昔書きかけてた記事を発掘したので公開↓

 

この記事は「ポラム」カテゴリです。「コラム+ポエム」の造語で”駄文以上日記未満”を目指す記事なのでご注意ください。

 ~~~

たいそうなタイトルを付けてしまいましたが、データサイエンティスト(以下DS)と呼ばれる職業(?)のことについて聞かれたり、「あなたはDS?プログラマ?」みたいなことも聞かれたりもするので、そもそもDSって一般にどう認識されていて、なんで当事者含めてよくわからない状態になっているのかの考察です。

 

データサイエンスの普及

まず、ここ数年でDSという名前が取り沙汰される要因は、いろいろ言われていますが

・ユーザ企業で蓄積されたデータ量が爆発的に増えた

・データを処理できるだけの性能をもったハードが一般に普及

・データ処理アルゴリズムが人間の性能を超え出した

という点で、速い話が専門家以外の人でもデータサイエンスの成果を利用しやすくなったためです。特に「グーグルが猫を発見した!(画像認識の話)」とか「AIが囲碁・将棋でプロに勝った!」というような一般人にもインパクトを与える話が出てきたここ数年、SIerをはじめお客さんになにかしら提案する立場の人たちにとってはいい材料となるわけです。

 

SIerに突きつけられた課題

そこで、データサイエンスを提案やシステムに盛り込もうとしたとき、SIerも当然その準備がいります。

まず、そもそもSIerはこのような立場で仕事をしています。(もっといろいろあるぞー、とかいい加減すぎるぞー、という批判はごもっともですがざっくりで説明させてください。。。)

f:id:stkdev:20170403001225p:plain

お客さんの課題に対して、システムで対応できるところを考えて導入していくわけです。

お客さん側の課題というのは、大体「フロー化されている作業の自動化」なわけです。つまりSIer側はフローの理解と複雑なフローをアルゴリズム化し、実装できる技術力が必要とされます。

さて、ここにデータサイエンスを導入しようとしたときに起こったのがいわば、システム開発とは似て非なるレイヤの登場です。

f:id:stkdev:20170403001947p:plain

「データ量爆発をどうにかしたい」や「なんかニュースでよく見る人工知能を使ったら業務が改善できるかも」というフロー化されていないあいまいな(しかも高度な)要望が出てきたわけです。

出てきたというか、たぶん昔からずっと漠然と課題としては持っていたが不可能だとあきらめていたものが、データサイエンスという何とかしてくれそうなキーワードをひっさげて表面化してきたんだと思います。

そしてそれらを解決しうる手段(データサイエンス)は、ずっと進歩を続けていて実社会で十分活用できるレベルになっていたわけです。

そうすると図の赤枠に対応できる人が必要になってくるわけです。要望とシステムと情報科学を結ぶ人たち。それを担う(と期待された)人のがデータサイエンティストと呼ばれた、、、と思っています。

 

データサイエンティストの受難

おそらく上記の話はDSに興味を持っている人やSIerに所属している人にとってはなんとなく見聞きしていることかもしれません。

ただ、わざわざ図を作って整理したかったのはこの赤枠の広さを知ってほしかったためです。要望と解決手段(データサイエンス)とシステムを結ぶにはSIerと呼ばれる組織と同等とまではいかなくてもそれぐらいの分野をカバーする必要があります。

これに対し、DSという一つの枠で対処しようとすると、「データサイエンスの知見があり、分析基盤を構築し、分析結果のレポートや必要に応じてツールを提供してお客さんの要望をかなえるポジションの人材」みたいなスーパーマン探しが始まるわけです。

さすがにそれは無理だと気付くと、「SIerの各分野の人たちがデータサイエンスを学んで対応しよう」となってきます。お客さんへの営業やコンサルに近い動きをしていた人は提案にデータサイエンス要素を加えてデータアナリスト的な動きとなったり、基盤構築や運用をしていた人が大容量データや機械学習に適した環境を整えるデータエンジニアになったり、開発していた人が各種分析ツールやライブラリを学んでみたり。

これにより、なんとなくDSっぽいポジションがこなせるような感覚になりますが、そこはなかなか難しい課題が残ります。データサイエンスは難しいんです。それはもう世界中で盛んに研究されているんだからそれはそうです。

ということで、ちょっと素人が勉強してニュースになるような眼を見張る結果が出るわけもないですし、システム開発すら高速に行うことが求められる時代にじっと一つの課題に取り組み続けることも困難です。そうして「なんかうまくいかなかったなぁ」という評価だけが残るわけです。

そしてDSとして課題に取り組んだ面々は不完全燃焼のまま、「あれ、自分はインフラ屋として参戦したけどよくわからない案件だったなぁ」ということになってしまいます。

 

解決策は?他業界も一部

とりあえず、SIerで起こっていると思われる問題とその中でDSと呼ばれる人たちの現状はこんなところじゃないのかと思っているわけです。

結局これを解消するためには、システム屋側からだけでなく、データサイエンスを専門で学んできた人の参入が必要でしょうし、データサイエンティスト協会がまとめているような3分野(ビジネス力・データサイエンス力・エンジニアリング力)ごとに育成して、チームを組んで対応というのが現実解な気がします。

 

また、ここではSIerのことばかり書いていますが、別業界では見方も全然違うと思います。特に大学発ベンチャーとか、データ処理が必須のWeb系企業なんかでは「え、いや、機械学習とか昔からやってますし、、、」となったり、研究機関を持つ大手なんかはそういったDSのポジションや組織のノウハウもあるとおもいます。

しかしデータサイエンスをキーワードとして使う世の中の多くの中小SIerではこのような時代の変化の中、どういう立ち位置でビジネスするのか、個人個人のエンジニアとしても自分の立ち位置を考えないといけない状況なんだろうなぁ、という感じです。

 

参考

まぁこのあたりの話はいろいろとすばらしい先駆者がいらっしゃるので、これからこの分野を目指す人や会社方針でDS的なポジションになった人はいろいろ情報を探してみると、様々な立場の人たちの話があって面白いです。

tjo.hatenablog.com

d.hatena.ne.jp

tjo.hatenablog.com

 
どうでもいい余談

・ちょっと自分にも関係あるのでまとめました。

・最近こういうコラムやポエム的なものを自分でも書いてみたいなと思っているので、いろいろ書くと思います。そして数年後に恥ずかしくなって消すと思います。

・新社会人や人事異動が多い4月(当時)にこんな話をまとめているということは「あ、この人って社内でこういうこと説明しなきゃいけない人なのかな」とでも思っていただければ(略

 

fastTextがすごそう ~とりあえず足し算もしてみた編~

これの続きです。

stkdev.hatenablog.com

…が、まだきれいにまとまってないので、とりあえず遊び中のメモです。

 

前回の記事では1つの単語に対して類似の単語を見つけてきたわけですが、単語の足し算・引き算もできるようにして、やってみました。

いい感じになったものを列挙しておきます。

Webサービス化してみんなで遊べるようにしたいなぁ。。。)

 

・"AI"に何か足してみる編

AI + BI = Zinrai

AI + 製品 = コグニティブコンピューティング

AI + 理解 = 自然言語

AI + ゲーム = 複合現実

AI + 人生 = 偏見

AI + ニュース = 虚偽

AI + 絶望 = 碁

 

 ・”企業”にいろいろぶつけてみる編

企業+長時間労働 = 法制度

企業+ウイルス = 標的型

企業+ランサムウェア = 保護規則

企業+不正=情報漏洩

 

・"技術"を見ておく編

技術+注目 = コグニティブコンピューティング

技術+重要 = エッジデバイス

技術+優秀 = DevOps

技術+事業 = デジタルトランスフォーメーション

 

学習データがITニュースばかりなので、いろいろと偏った単語が出てきますが、なかなかいい感じです。

fastTextがすごそう ~とりあえず使ってみた編~

Facebookから公開されたfastTextというライブラリがすごそうなので使ってみようと思います。

github.com

 

このライブラリは大量の文章を読み込んで、単語をベクトル表現できるようにするものです。

そうすることで、似ている単語や単語同士の関連性などを知ることができます。さらには単語の分類やレコメンドにも利用できるというものです。

 

もっとくわしく機能や凄さを紹介している記事はこちら

deepage.net

 

使ってみて面白い結果が出てきたら、ここのブログかQiitaの方にでもまとめようと思いますが、「とりあえず適当にデータ突っ込んでみた」結果からもすごさの片鱗が見られたので紹介しておきます。

 

まず学習のためのデータは、自作のニュースまとめサイトITニュースのお漬物(β)」でせっせと集めているニュースの記事を使います。

とりあえずライブラリのパラメータはデフォルト値を使って何も考えずに処理を流してみました。そして特定の単語と近いと判断された単語をまとめてみます。

このあたりの作業手順とかはきれいにしてから別途まとめる、、、予定。

(これで、IT系の話題検出とか関連ニュースのレコメンドとかを将来的にはやりたい。。。)

 

試してみた単語はIT系で何かと話題の”分析”、”機械学習”、”AI”、ついでに”ポケモン”です。

単語→
↓順位
ポケモン 分析 機械学習 AI
1 トレーナー 分析技術 機械学習技術 bot
2 トレーナーレベル 蓄積 機械学習機能 Nauto
3 メダル 分析結果 深層学習 SAIKAWA
4 トレーニングバトル 誤検知 学習 WISE
5 Pokemon 人手 人工知能技術 ABEJA
6 タマゴ 把握 強化学習 Artificial
7 ポケストップ 欠品回避 異種混合学習技術 Einstein
8 ゲットホリックケース 収集 自然言語処理 COTOHA
9 モンスターボール 規則性 膨大 TIS
10 トレース 脅威情報 自動生成 Institute

 

これはなかなかすごい結果ではないでしょうか。

もちろん単語によってはよくわからない結果だったりもしましたが、上の結果はだいぶ妥当性がある気がします。

 

まだまだいろんなことができそうなので引き続き遊んでみよう。

 

Coursera Machine Learning 完走!

3月から頑張っていたCoursera Machine Learningのカリキュラム全部終わりました。

www.coursera.org

 

とりあえずこんな感じでした。 

 

○始める前

「え?3ヶ月のカリキュラム?基礎知識はあるし1ヶ月で終わらしてやんよ」

 

f:id:stkdev:20170514031712p:plain

○途中

 「あ、ちょっと、これは、・・・。」

f:id:stkdev:20170514031807p:plain

○今ここ

 「ちょっと休んでから2週目行きますかね。」

f:id:stkdev:20170514031903p:plain

 

ということで、非常にためになる講座でした。

まだまだ理解が不十分なところあるので、何かしらサンプルコードでも書きながら復習が必要そうです。

 

とりあえず「ちゃんと最後までやったよ!」という報告だけなので、今回は中身についてあまり書きませんが、カリキュラムの終盤は機械学習の理論的な中身の話だけでなく、実際のプロジェクトにおいて注意しなくてはいけない点や様々なデータに対するアプローチ方法なども紹介されていて、仕事として機械学習を使っていこうとしている人にとっては必見な内容だと思いました。

 

 

Coursera MLの6,7週目ともろもろ

Coursera Machine Learningの6,7週目が終わりました。

SVMの話や教師なし学習としてk-meansやPCAの話がありました。

今までに比べるとサラッと解説するような感じで、とっつきやすい内容でした。(中身もだいたい知っている内容だったこともある。)

SVMはマージンの意味などもわかりやすくて相変わらずためになる内容です。

 

また、1~4週目の復習がてら回帰を実装しながら細かく見ていくプログラム&資料を作成中なのでまた公開します。

 

で、それはそうとGW期間が来ましたね。

現実逃避の旅に出かけるべく、日本地図にダーツをして行き先を決めるアプリないかなーと思って探していると、簡易的なものを見つけました。ただちょっと改良したかったのでちょろっと改造をし始めるといつの間にか1日が終わって旅に出るタイミングを逃していまいました。

その日記がこちら

qiita.com

とりあえず動作確認も兼ねて行き先をポチッと。

f:id:stkdev:20170501012227p:plain

© OpenStreetMap contributors

(図はOpenStreatMap。GoogleMapは画像で貼れないので。)

 

あー・・・。最北端・・・、を超えてますかねぇ。これは行けない。。。

まぁそもそも連休をつなげてないので遠出はできないんですけどね。