機械学習について軽く学んだので雑に書く

機械学習に触れる機会があったのでメモ。雑に書いているから読みにくいのは仕方ない

データの整理や賢いしきい値設定に関してはなんとなく想像ができていて、

画像の生成ってピンとこなかったけど、行列で生成みたいな感じなのね。

 

学んだことメモ

  • 「強いAI」と「弱いAI」があること
  • 損失関数や活性化関数など数学的なニュアンスが強い
    • シグモイド関数など既存の関数を適用するわけだけど、そこはブラックボックス的に使うケースもそこそこある
  • ディープラーニングにおいてはパーセプトロンが大体は最小単位
  • パーセプトロンを組み合わせた上で活性化関数などを用いて、インテリジェンスな判断を行う
  • weight という重み付けをして、賢い重み付けを模索するために GPU を必要とするレベルの並列計算が必要
    • パスワードのブルートフォース手法の限界みたいだ。総当たり攻撃か辞書攻撃みたいなものもあるが、精度はやはりイマイチ、みたいな

実用的な例

  • メールの文言を最小単位(形態素解析など使って)にして、そこをパーセプトロン + weight で活性化関数を組み合わせてスパムメールの判定
  • 画像生成に応用してキャラを自動的に生成、とか
  • 挙げたらキリがないけど、やはりメディア系が多い
  • 異常システムの検知くらいになってくると機械学習でも難しいかもしれない?
    • 人が判断するにしてもかなり難しいし

画像の生成に関しては下記の記事がわかりやすかった。生成過程の画像とかグチャグチャだけど、descliminator によって正解に近づけていくのね。descliminator の提示する正解が数パターンあると、複数の画像を生成できるかもしれない

一エンジニアとして機械学習を適用していくには?

現段階でかなり賢い AI は Google や Adobe Sensei によって開発されているから、ぶっちゃけ勉強しても大規模なレベルの開発は難しい。

いわゆる「弱いAI」を自分のサービスとかに適用していくにあたっては、まずはドメインの理解というか、自分のサービスでやっていることを深く理解してから何を最適化するかを考える必要がある

例えば、就職活動を支援するサービスに適用しようとすると、ユーザがタグ付けを行わないで、ユーザが書いた自己紹介や履歴書から賢いタグ付けなどを行うことができる。

賢いタグ付けをするためには、傾向を知るために履歴書やユーザの書く自己紹介に(ある程度は)詳しくなる必要もある

と、考えると機械学習のロジックを実装する手間と、機械学習を使わないで手でベタにロジックを書くかは時間とのバランスも大切で。

 

Slideshare とかのタグ付けも実際に応用されているところだとは思うけど、コンテンツが大量に生成されるであろう環境で使うのがいいんだろうなぁ。商品の推奨とかあるけど、ありきたりっちゃありきたりだし。

汎用性を高めると、Google とか Adobe とかがすでにやっているサービスとあまり遜色なくなってしまうし、あまりにも限定的な用途特化で作り込むと機械学習の旨味というのは減る気がしている。

(限定的にすると自前でコードを書いた方が安い可能性がある)

 

うーん、この適用するバランス感覚を身につけるってことが機械学習エンジニアとしての勘所なのかな。


Windows の WSL 上で docker daemon が動く(らしい)話の個人的まとめ

どうやら動くようになったらしい。この手順を簡略化している Qiita の記事がこちら。

Windows のサービスを使って、管理者権限で起動するそうな。

ちなみに元ネタはこちら

IO 性能があまりよろしくないとの話もあったりする

開発環境として使えるかなと思っていたけど、思ったより性能は出ていない。

動くことが大事なのでテンションはもちろん上がっている(∩´∀`)∩

 

が、まだ早いのかなぁ、という所感。
これだけ大きい話ならば、Docker 社のコメントもあるだろうし、 WSL 側からも何らかの話があってもいいかなぁ、と思ってはいる。

 

あと、あくまで apt で入れた docker.io なので docker-ce だと別の話になるみたい

ちょっと様子見としようかな。興味ある人は動かしてみるといいよ!


Comment: GoBGP 活用による SD-WAN プラクティス

GoPlane をこれで初めて知ったんだけど、なかなかカッコイイ!

Raspberry Pi 買って家でもできるかしら。GoPlane 自体がそもそもそんなに真面目に作られているかはわからん。


Jupyter Notebook

http://jupyter.org/

簡易的なデータ集計に便利

使い方としては「本番 DB とは別に read only な slave DB を立てて、そこを参照しつつ、データ集計してグラフとして表示する」とかがやりやすくなる

管理画面で集計が必要になる場合、気楽に作るんじゃなくて、こういうツールで構築したほうがいいかもしれない

Tableau なんてのもあるけど。


Barge (Operating System)

Docker 用の軽量 OS らしい。どうやって軽くしているのか、その手法が気になるところ

最近は Rancher OS と戯れる事が多いから、あまり意識はしないで済んではいるけど、そのうち知りたい


MinocaOS

 

省メモリ OS っていいよね。なんか mini な OS ってワクワクする感ある。

多機能な方がいいんだけど、自分で作るならその方が好き