トップ «前の日記(2012-12-29) 最新 次の日記(2012-12-31)» 編集

ヨタの日々

2001|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

2012-12-30 :-)

_ 午前

0930 起床

1030 おひる。そうめん

_ 午後

1300 コミケサークルチェックなど

1500 機械学習ほげ

_

1700 機械学習ほげ

1800 昼寝

2030 機械学習ほげ

2200 飯。鮭のムニエル

_ 40mm F2.8 レンズいいよと友人から言われた

昨日飯食べてるときに。

これか。ふうむ

キヤノン EF40mm F2.8 STM

B0089SWZDU

_ AQUOS Phone ZETA SH-02E の USB ドライバをインストールするなど

概要

docomo NEXT series AQUOS PHONE ZETA SH-02Eトップ

手順

SH Developers Square - ドライバ ここに書いてあるとおり。

  1. 各機種の USB ドライバをインストール
  2. ADB USB ドライバをインストール

以前やったときインストールできなかったんだが、端末での 設定 - 外部接続 - USB接続 - 高速転送モード の手順が抜けていたようだ。設定したら接続できた。

ADB USB ドライバもインストールすればターゲットとして扱われる。

_ [機械学習][パーセプトロン][ruby] 機械学習超入門III ~機械学習の基礎、パーセプトロンを30分で作って学ぶ~ - EchizenBlog-Zwei

書いてあるコードが Perl なので Ruby で写経してみた。

#!/usr/bin/ruby

# -*- encoding: utf-8 -*-

# 機械学習超入門III ~機械学習の基礎、パーセプトロンを30分で作って学ぶ~ - EchizenBlog-Zwei
# http://d.hatena.ne.jp/echizen_tm/20110606/1307378609

require 'pp'

# 識別関数
#
# y = wx
# w: 重みベクトル
# x: 入力ベクトル
def predict(w, x)
  y = 0
  x.keys.each {|k|
    if w[k] != 0
      y += w[k] * x[k]
    end
  }
  return y
end


# 学習
# 
# loss(w, x, t) = max(0, -twx)
# w: 重みベクトル
# x: 訓練ベクトル
# t: xの正解ラベル(1 or -1)
def train(w, x, t)
  y = predict(w, x)
  if (y * t) < 0
    x.keys.each {|k|
      w[k] += (t * x[k])
    }
  end
end

# RGB値を素性とした訓練データ
# 暖色系カラーなら1
# 寒色系カラーなら-1を正解ラベルとする
x_list = [
  { :R => 255, :G=>   0, :B =>   0, :bias => 1 },
  { :R =>   0, :G=> 255, :B => 255, :bias => 1 },
  { :R =>   0, :G=> 255, :B => 000, :bias => 1 },
  { :R => 255, :G=>   0, :B => 255, :bias => 1 },
  { :R =>   0, :G=>   0, :B => 255, :bias => 1 },
  { :R => 255, :G=> 255, :B =>   0, :bias => 1 },
]

t_list = [1, -1, -1, 1, -1, 1]


# 訓練パート
w = {:R => 0, :G => 0, :B => 0, :bias => 1} # 重みベクトル
loopc = 10 # 訓練の繰り返し回数
loopc.times { |c|
  x_list.each_with_index { |x, i|
    train(w, x, t_list[i])
  }
}


# 推定パート
ARGF.each do |line|
  line.chomp!
  fs = line.split(/ /)
  if fs.size != 3
    warn "invalid input data."
    next
  end
  
  x = {:R => fs[0].to_i, :G => fs[1].to_i, :B => fs[2].to_i, :bias => 1}
  t = predict(w, x)
  if t >= 0
    puts "> warm color."
  else
    puts "> cold color." 
  end
end