いったいどうなる? ドローンまとめ
どーもサンライズコーポレーションの@ueda1です。 男子の夢、ロボットについてペタペタしていきます。 それはなぜか、ドローンの未来予想をする為にはまず現状を把握しとこうかな?とういう軽いノリです。 まとめと言いながらまとまってない、偏ってるとこはご愛嬌。
ドローンって?
そもそもドローンってなんだよ、ええ飛んでホバリングできるラジコンの事ですね。 違いは自動コントロールがついてるかどうかという事らしいです。 拡大解釈してラジコン=ドローンといってもいい程になっちゃってて別に飛ばなくても自動コントロールがついてりゃ ドローンって事みたい。 曖昧なんですぐ陳腐化して死語になるでしょうね。
バトル系ドローン
まずはいわずと知れた「プレデター」これがドローンの火付け役といっても過言じゃないですね グローバルホークと兄弟分か
空母に着艦できるタイプのヤツ
最終的には戦闘機は全部ドローン化するらしく 友人戦闘機は「F-35」が最後になるっつー話もあるくらい本腰みたい
小型大量生産で編隊行動するタイプのやつら
ペット系ドローン
もともとは歩兵用の追従型運搬ロボだのに、エンジンだったので非常にうるさかった(居場所バレちゃうよね〜) そこでモーター型にしての出直し第一弾がこれ
空撮系ドローン
もうなんだか、 空撮しかする事ないのか!ってくらいいっぱいあるのでスルー
おまけ
もうほとんど人っす こんなのが100体で行進してたら怖くなりますね
マシンはどこをめざすのか
いろいろ見て来ましたが、注目すべきは直近数年間での進化速度です。 さらに今後実行知能なんかが発明されれば、より効率的なマシン達が誕生するはずです。 人が考えるマシンは既存の動物に似て行きますが、マシンが考えたマシンは未知のものになるでしょうね。 最終的には生物なんだろうと思いますね。
マトリクスやターミネーターのような世界はゴメンですが(笑) 次の10年でどこまでいくのか非常に楽しみですね。
参戦したい
すでにレッドオーシャンに見えるドローンですが 生活というステージで活躍するドローン(マシン)を考えてみたいものですね。
宣伝です。
サンライズコーポレーション社長ブログ
http://yoshio-fukami.hatenablog.com/
同僚が綴る、新米奮闘記
http://sc-marina.hatenablog.com
サンライズコーポレーションHP
スゲェ面白い!「scikit-learn」で機械学習入門
自己紹介
サンライズコーポレーションの@uedaです 普段は渋谷系大手広告代理店でアプリ製作をお手伝いしています。
激アツの機械学習にチャレンジしてチートシートを作ってみます。 自分の備忘録として書いているのでツッコミは一切受け付けておりません(キリッ)
機械学習って何ができんの
昔から人工知能の開発は行われており、パターンから次を予測するようなモノは実現していたんですが、人間のように画像を見て何を意味するかを読み取ったり、違うパターンが来た時も自分で規則性を見出したりする事はできなかった、しかし深層学習(DeepLeaning)って云う脳と同じ構造をもたせる事でそれらが可能になってきたっつー発展途上中だけど確実に次世代に花咲くテクノロジー確定なのです(キリッ) 東大の教授曰く言語分野における深層学習ブームは2014年11月頃に終息したみたいですが... まだまだ激アツなのは間違いない。 昔見たロボットアニメなんかで戦闘データを元に次世代マシーンを作っていく世界がすぐそこまで来ているような気がします
今回やりたい事
コーパスと呼ばれる文章を形態素解析で分解して モデルで処理する事によってベクトル毎に分類させてみます。 使うのは入門ではおなじみscikit-learn
環境を準備する
- 動作環境をインストールしていきます。
- pythonのバージョン管理ツールpyenv
- 数学関数ライブラリnumpy
- 科学技術計算ルーチンパッケージscipy
- 今回のメインディッシュschikit-lean
環境構築チートシート(max yosemite)
いろいろやったのでいらないヤツが入ってるかも
Xcode&HomeBrew&pip $ xcode-select --install $ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" $ sudo easy_install pip Python $ brew update $ brew install pyenv $ brew install pyenv-virtualenv # これは任意 $ pyenv install 2.7.8 numpy & scipy&nose & scikit-learn & mecab $ sudo pip install numpy $ sudo pip install scipy $ sudo pip install nose $ pip install scikit-learn $ brew install mecab $ brew install mecab-ipadic $ sudo pip install https://mecab.googlecode.com/files/mecab-python-0.996.tar.gz
仕様
コーパスと呼ばれる文章単位でベクトル化して コーパス達を分類してみます。 GitHubににたコードが転がっていたので そのまま動かしてみました。ありがたやー
- twitterの記事を食わせる
- mecubで分解する
- ゴミをとる
- 次元削減してベクトルを作成する
- 記事をベクトルでソートしてみる
- ソートした記事をベクトル毎にクラスタリング(分類)します
- クラスタリングしたデータをとりあえずファイル出力します
ソースコード
import csv import codecs import numpy as np import MeCab from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.cluster import KMeans, MiniBatchKMeans from sklearn.decomposition import TruncatedSVD from sklearn.preprocessing import Normalizer FILENAME = 'tweets.csv' #FILENAME = '~/Documents/scikit-learn-test/tweets.csv' #NUM_CLUSTERS = 1000 #LSA_DIM = 500 NUM_CLUSTERS = 3 LSA_DIM = 2 MAX_DF = 0.8 MAX_FEATURES = 10000 MINIBATCH = True #リプライと3文字以下は除外する def get_tweets_from_csv(filename): ret = csv.reader(open(filename)) tweets = [r[5].decode('utf-8') for r in ret] for tweet in tweets[:]: if u'@' in tweet: tweets.remove(tweet) if len(tweet) <= 3: tweets.remove(tweet) return tweets #単語をBug-of-Wordsで表現する def analyzer(text): ret = [] tagger = MeCab.Tagger('-Ochasen') node = tagger.parseToNode(text.encode('utf-8')) node = node.next while node.next: ret.append(node.feature.split(',')[-3].decode('utf-8')) node = node.next return ret def main(filename): # load tweets tweets = get_tweets_from_csv(filename) # feature extraction # scikit-learn に単語の重みづけをおまかせ vectorizer = TfidfVectorizer(analyzer=analyzer, max_df=MAX_DF) vectorizer.max_features = MAX_FEATURES X = vectorizer.fit_transform(tweets) # dimensionality reduction by LSA # 次元削減をして同じ意味の単語をグルーポン lsa = TruncatedSVD(LSA_DIM) X = lsa.fit_transform(X) X = Normalizer(copy=False).fit_transform(X) # clustering by KMeans # クラスタリング開始 if MINIBATCH: km = MiniBatchKMeans(n_clusters=NUM_CLUSTERS, init='k-means++', batch_size=1000, n_init=10, max_no_improvement=10, verbose=True) else: km = KMeans(n_clusters=NUM_CLUSTERS, init='k-means++', n_init=1, verbose=True) km.fit(X) labels = km.labels_ transformed = km.transform(X) dists = np.zeros(labels.shape) for i in range(len(labels)): dists[i] = transformed[i, labels[i]] # sort by distance # tweetsをクラスタへ振り分け clusters = [] for i in range(NUM_CLUSTERS): cluster = [] ii = np.where(labels==i)[0] dd = dists[ii] di = np.vstack([dd,ii]).transpose().tolist() di.sort() for d, j in di: cluster.append(tweets[int(j)]) clusters.append(cluster) return clusters if __name__ == '__main__': clusters = main(FILENAME) f = codecs.open('%s.txt' % FILENAME, 'w', 'utf-8') for i,tweets in enumerate(clusters): for tweet in tweets: f.write('%d: %s\n' % (i, tweet.replace('/n', ''))) f.close()
使い道
単語で検索して近いベクトルのコーパスを呼び出す処理なんかに使える。はず
大事な事
言語分野での機械学習はいかに次元削減してコーパスをベクトル化するかが全てです。 それを学習させた調教済のモデルが結構転がってるので面白いですね。
ここからは宣伝です
サンライズコーポレーションでは仲間を探しています。 エンジニア経験者はもちろん、未経験でもチャレンジ魂があれば連絡してください!!! お待ちしています。 現在はEメールで受け付けていますのまずは問い合わせをお願いします。 連絡先:recruit@sunrise-cp.com 募集要項などを記載した求人ページはこちら
「えっこれが最初のコンピュータ!?」おれたちの起源
自己紹介
桜もすっかり散って4月を感じる気温になってまいりました どーも@ueda1です
面白い映画を見たのでご紹介。
コンピューターの全身となるエニグマ暗号の解読機を開発したチューニング博士の物語。
感じた事
0から1を生み出す力は万人には備わっていません。 劇中の博士の名言には感動すら覚えました。 すでにあるものを使い回す世の中が悪いとは微塵も思いませんが エンジニアとしてゼロに挑戦するのっていいなーと思う
なぜ能動的に動けないのか?性能を解放しよう
自己紹介
サンライズコーポレーションでエンジニアをしている@ueda1です。 やればできる筈なのに、能動的に動けないメンバーに悩むまえに考えるべきことをテーマに書きたいと思います。普段心がけている事を
指示が曖昧になっていないかに注意する
プロジェクトにおいてゴールと手法、そして使って良いリソースをちゃんと指示しているかは非常に重要です。これなしにメンバーは能力を発揮することはできません。「あーそれはいー感じでやってくれれば問題ないよ!」って問題ありありじゃん
明確なルールの上に自由を与えているかに気を配る
かといってギツギツすぎる指示書を出すくらいなら、指示書く工数でゴールできるでしょう。
任せた仕事に口を挟んでいないか
これやっちゃうともはや任せたとは言えないし、プロジェクトをかき乱す事になるので控えましょう。 確かに口を挟みたくなっちゃうんですけどねー。モチベーションの高いメンバーに対しては「週末位に進捗を教えて欲しい」程度で十分でしょう。
ちゃんと叱っているか
同じテーマについて長々と叱りつづけて、途中で説教理論が崩壊し、なぜか武勇伝が入りーの、矛盾し、結局何について叱られたのか何も残らない。という場面に遭遇します。2分以上説教しても意味ないので気をつけましょう。
ジェネレーションギャップが存在する事を認める
昔は背中を見て、盗め!とか言われて育ってきましたが、最近はどうやら違うようです。 合理化されまくり、ナレッジの溢れる世界で成長してきた若者にとっては立ち止まる事は無意味かもしれません、かと言って盗んで欲しい本質の部分は今も昔も変わらないと思います。 「自分の時はこうした」とか、「最近の若い者は...」とか口に出しそうになったら思い出してみましょう。
属人化させてみる
メンバーに任せた部分はそのメンバーの責任においてクロージングしてもらうように完全に属人化させてみるとよいでしょう。メンターがいればきっと凄まじい成長曲線を描いてくれると思います。
ポジティブなPDCA やってますか?
Planeフェーズでは「これをやることで凌ぐ」ではなく「これで攻める」になってますか? Doフェーズでは足の引っ張り合いになってませんか? Checkフェーズではちゃんとスケージュール組んでやってますか? Actはあいつのせいでこれをやるハメになったってなってませんか? 最後に、ちゃんとチームで戦ってますか?
なんだか
世の中いろいろな本やら情報やらありますが、論理的に処理するよりも メンバーを信頼すればきっと能動的に動けるような人材に育つ! かもっていうお話でした。
「おわハラ?」そんな事やっちゃうのね
内定者の間で「おはハラ」なる言葉が囁かれだしたけど、それについて考えてみた!
自己紹介
未経験転職してから10数年、思えばよく生きぬいて来た。と週に一度自分を褒めてあげる事にした@mobueda1です。
そもそも「おわハラ」って何
アベノミクスによって求人数が上がり、世間の一部の企業では優秀な学生を確保せんと必死なのだが、優秀な学生はどこも欲しいので取り合いになっている、そして為就職活動中に何件か面接を受けるとウチで内定を出すので「今後の就活はやめてほしい」と要求されたりするらしい。
人生一度きり
「おわハラ」をするような企業に就職したところで開かれた未来なんてない気がするよね。最終的にどんな生活をしたいか想像した時をのパス上にない企業に就職する意味は無いし、選択肢は数年前より多いはずだ。
いろんな会社を見てほしい
ナショナル企業だけが企業じゃない、暗黒の時代を生き延びた中小企業は沢山います。
日本経済が大暴落しても下落しなかった株のように、何かしら強みをもっている企業ばかり、彼らがどのように生き残ったのかとか、いろんな世界を見てから船出してほしいので「おわハラ」に私は反対なのだ
宣伝です
サンライズコーポレーションでは仲間を探しています。 エンジニア経験者、2015新卒はもちろん、未経験でもチャレンジ!!! お待ちしています。 現在はEメールで受け付けていますのまずは問い合わせをお願いします。 連絡先:recruit@sunrise-cp.com 募集要項などを記載した求人ページはこちら
就職活動、転職活動でチャレンジ!? 人生が変わる働き方
自己紹介
初めまして、サンライズコーポレーションでJavaエンジニアをしている@uedaです。10年位に異業種からIT業界へ転職したクチです。今回は人事業務を手伝う機会があったので感じた事を中心に、IT業界未経験者でもチャレンジできるの? をテーマに書きます。
IT業界の現状
普通IT業界は常になりたい職業の上位で、そこで活躍するエンジニア達は大学や専門でITを学び、次々とサービスをリリースし、華麗にLTして華やかだなー?と思われがちです。でもそんなエンジニアでも異業種未経験からチャレンジして活躍されている方が多いのも事実です。チャレンジしてみたかったけど諦めちまいそうな心に火を灯すことができると嬉しいです。
最近IT業界に興味を持ち始めたけど、「理系じゃない大学だから無理だわ~」と思うのはまだ早いです。下積みをする覚悟があれば飛び込めます、この業界そんなに甘くなく即戦力にならない人間を雇ったり、未経験者を教育する余裕はどこもありません!
「このままじゃ生活と両立できんからやっぱ諦めよ~」と思うのはまだ早い。一気に解決する方法があります。少し考えて見ましょう平日は安月給で勉強させてもらいながらエンジニアとしての腕を磨き、夜は生活費を稼げばいーんです(笑)背水の陣チャレンジ的な! 初任給は安くとも、生活費と言う障壁を超えれますね、少なくともやる気があれば可能でしょう。
振り切っちゃいましょう
えっWワークさせてもらえないんじゃないか!って?えっと言わせてください 「そんな会社いますぐやめちまえばいーんですよ」そして今すぐその次元の考え方を捨ててください。これで幸せになれますワッショーイ 平日はIT下積み社畜として休日は働きマシンとしての人生を半年やればスタート地点に立つことがきっとできますよ。
決心したら準備する事
ズバリ!覚悟です。「IT業界3年ひと昔」と言って経験者でもパラダイムシフトがあればほぼ未経験と同じ、ゆえにチャレンジ成功の秘訣は「探求と実行」です。チャンチャン🎶
ここからは宣伝です
サンライズコーポレーションでは仲間を探しています。 エンジニア経験者、2015新卒はもちろん、未経験でもチャレンジ!!! お待ちしています。 現在はEメールで受け付けていますのまずは問い合わせをお願いします。 連絡先:recruit@sunrise-cp.com 募集要項などを記載した求人ページはこちら