商標登録の出願
個人で作っているWebサービスのサービス名(ロゴではなく文字のみ)の商標登録出願をやってみた
結論から言うと出願自体はすごく簡単。
やりかたをざっくり書くと
1. 特許庁の商標登録出願のpdfを熟読
http://www.jpo.go.jp/shiryou/kijun/kijun2/pdf/syutugan_tetuzuki/05_01.pdf#page=5
これのp.548 ~ p.557あたりまでを熟読する
2. 出願用のwordファイルを探す
上記pdfのp.552のフォーマットのwordファイルを探す(このフォーマットを一から作ってもよい)
3. 出願用のwordを書く
個人で出願する場合は以下を記載すればOK
- 書類名
- 整理番号
- 提出日
- あて先
- 商標登録を受けようとする商標
- 標準文字
(上記「商標登録を受けようとする商標」の枠の下側に【標準文字】とだけ記載)
- 指定商品又は指定役務並びに商品及び役務の区分
- 区分(【第42類】等)
- 指定商品(指定役務)
- 商標登録出願人
- 住所又は居所
- 指名又は名称
(名前の横に自分の名前の判子を押印。印鑑登録してなくても大丈夫)
- 電話番号
全て全角(数字も)で記載し、フォントサイズは10〜12、左右の空白は2〜2.3cmとする(一番左側や右側に位置している文字からの余白)
指定商品(指定役務)の部分は以下のサイトなどから区分に該当する箇所を抜き出してくる(全部書いてもよい)
商標登録: 指定役務リスト
4. でかめの郵便局又は特許庁で特許印紙を買う
印紙代は以下のサイトを参考に。(ちなみに2区分で出願する場合は20600円)
産業財産権関係料金一覧(2016年4月1日時点) | 経済産業省 特許庁
5. 特許庁で最終確認してもらう
出願時に足りない箇所等あれば教えてもらえるので聞く
6. 出願
問題なければ印紙を貼り付けて出願。
紙で提出した場合は電子化代が必要で郵送で送られてくるそう。それを郵便局で支払う。
※電子化代はまだ払っていないが出願時にもらう紙によると1200円+(700円x枚数)との事なのでおそらく1900円。
以上終わり
おそらく弁理士に頼むメリットとしては出願しても申請が通らないケースがあるのでそれの判定や
適切な出願範囲(間違えると範囲外の権利を主張出来ない)を考えてもらえる事がある。
自分みたいにとりあえず適当な範囲でいいので出願したい場合は要らなかった。
Deep Learning
# Deep Learning 4
誤差逆伝搬法の勉強
前の章で実装した損失関数の勾配の微分計算はとてつもない時間が掛かるのでそれを早くしましょうっていう話。
計算グラフで説明するとの事だったので概要を理解したく以下のスライドを読んでみた
www.slideshare.net
かなり分かりやすい
Deep Learning
Deep Learning 勉強 3
勾配法
前回勉強した損失関数は訓練データが如何にテストデータ(正解)に近づいたかを示す関数で、2乗和誤差や交差エントロピー誤差などは0に近いほどテストデータに近いと定義されている。
最終的な目標は認識精度を上げる事なので、3.6.2 ニューラルネットワークの推論処理でやった最終的な正解の割合(accuracy)を指標としても良さそうですが、これだとパラメータ(重みとバイアス)の微小な変化に対してほとんどが変化しない事が問題となるそうです。
言い換えるとパラメータを入力、推論結果(accuracy)を出力とする関数を考えるとほとんどの入力で微分が0となり、0に近いパラメータをさがす事が事実上出来なくなる。
これらを解消するため損失関数という入力に対して連続な(微分可能な)関数を選んでいます。
勾配法はこの損失関数を入力で微分(偏微分)し、最小となる入力パラメータを探す方法の一つで
4.4.1では最急降下法というアルゴリズムが用いられていて
となってます。
この方法は極小値を探すのには向いてますが、最小値を探す場合は様々な初期値で試す必要があるとの事。
Deep Learning
Deep Learning 勉強 2
4.2 損失関数の交差エントロピー誤差
cross_entropy_errorで微小な値を追加しているので少し考察
= log(y ( 1 + delta/y))]
ここでdeltaは微小な値なのでは限りなく1に近い
これより は限りなく0に近いことになるため
といえる。
4.2.4 バッチ対応版交差エントロピー誤差の実装
tがラベル表現だったらの箇所の意味がいまいちわからなかったけど
バッチサイズが5だとすると、tがone_hot表現の時は
t1 = [[0, 0, 0, 1], [1, 0, 0, 0], [0, 1, 0, 0], [1, 0, 0, 0], [0, 0, 1, 0]]
という表現で行が各々のテストデータの結果で、列が出力の数。
tがラベル表現の時は
t2 = [3, 0, 1, 0, 2]
というように各々のテストデータの結果の正解インデックスの値ということ
Deep Learning
Deep Learningの勉強
今日からO'REILLYの「ゼロから作る Deep Learning」を読み始めます。
ブラックボックスは極力使わずにゼロから積み上げるコンセプトが気に入りました。
python 3系のインストール
本で使用しているpythonのversionは3系で、手持ちのmacbookはpython2だったのでupgradeしておく
環境を切り替えられるようにpyenvのインストール
brew install pyenv
.zshrcに以下を追記して読み込み
export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)"
インストール可能なlistの表示
pyenv install --list
本推奨のanacondaをインストール
pyenv install anaconda3-2.4.0
anacondaをインストールする事によって本書に必要なNumPyとMatplotlibもインストールされるとの事
インストールの確認
環境の切り替え
pyenv global anaconda3-2.4.0
確認
python --version
こんな感じに表示されればOK
Python 3.5.0 :: Anaconda 2.4.0 (x86_64)
ヤフオクAPIラッパーを作ってgemに登録してみた
ここ最近
暇つぶしで、嫁のやってる事を楽にするための超嫁得Webサービスをrailsで立ち上げて遊んでました。
yahooが提供しているヤフオクのapiをごにょごにょしていい感じに表示させるWebサービス(ユーザーは嫁のみ)なんですが
http://developer.yahoo.co.jp/yconnect/
このyconnectを使ってoauthで認証する系のAPIの使い方が分からなくて手こずってました。
omniauthってので認証してaccess tokenをゲットするまではある程度すんなり出来たけど、その先のtokenを使ってどうやってAPI叩けばいいの?ってのに嵌りました。
認証が必要ない場合のAPIを叩くgemはあったんですが、認証が必要な場合のが無かったので自分で作ってついでにgemとして登録してみました。
https://rubygems.org/gems/yahoojp-auction-api
ただのラッパーなんだけど慣れてないとこんな情報あるだけで助かるんですよ。
配列(リスト)の逆順に関する性質の証明
https://gist.github.com/4243787
最近、プログラマの採用面接で解かす問題集みたいな本が出て
その中に「ある配列がユニークであるかどうかを示すコードを書け」という問いがあり、Coqで書いてみました。
下記のようなコードになるんだけどついでに配列を逆にした場合も結果は同じであろうという直感を証明しようと思ったらすごく嵌りました。
Require Import Bool. Require Import Lists.List. Require Import String. Require Import Ascii. Definition eqc (x y : ascii) : bool := if ascii_dec x y then true else false. Fixpoint list_of_string (s : string) : list ascii := match s with | EmptyString => nil | String c s => c :: (list_of_string s) end. Fixpoint contain (c : ascii) (chars : list ascii) : bool := match chars with | nil => false | x :: xs => if eqc x c then true else contain c xs end. Fixpoint snoc (l: list ascii) (v: ascii) : list ascii := match l with | nil => v :: nil | h :: t => h :: (snoc t v) end. Fixpoint rev (l: list ascii) : list ascii := match l with | nil => nil | h :: t => snoc (rev t) h end. Fixpoint uniq_i (chars : list ascii) : bool := match chars with | nil => true | x :: xs => if contain x xs then false else uniq_i xs end. Definition uniq (str : string) : bool := uniq_i (list_of_string str).
配列の先頭に付与する場合は帰納法で素直に解けるんですが、appendする場合は素直にいかない。
パターンマッチさせる場合 x::xsのように先頭でマッチさせるような関数を書いているのが原因だけど、配列の後尾から帰納的証明が行えるような機能が必要に思う。
証明は配列にappendした際の性質 in_app_or_congtain がキモ。
(* 配列に要素をappendした際の重要な補題 rev系の証明では必須 *) Lemma in_app_or_contain: forall (l : list ascii) (a b : ascii), contain a (snoc l b) = (contain a l) || eqc b a. Proof. intros l b a. induction l. simpl. case (eqc a b). reflexivity. reflexivity. simpl. rewrite -> IHl. case (eqc a0 b). reflexivity. reflexivity. Qed.
証明の全容は
https://gist.github.com/4243787
にあります。
最後の定理が目的のものです。