IT-LIFEブログ

主にIT系のことや時事ネタや、たまに雑記

【2017】京成スカイライナーのCMの曲について!歌手は?曲名は?

こんにちは、あつかんです。

YouTubeを見ていたときに、以下の京成スカイライナーの広告が流れてきました。

 

 

その広告に流れている曲がとても素敵な曲で気になってしまったので調べて見ました。

歌手&曲名

歌手はたかはしほのかさんという方だそうです作詞もたかはしほのかさんがやっています!

f:id:nok-0930-ss:20171212163217p:plain

たかはしほのかさんはリーガルリリーというバンドでギター&ボーカルを担当しているそうです。

 

詳しいプロフィールはこちらから

www.regallily.com

 曲名は そらのむこう だそうです!

 

ちなみに、作曲家はPa’s Lam Systemさんです!

 

最後に

歌声が透き通ってて、なんども聞けちゃう曲でしたね!

これ売れると思うな〜

今後のご活躍に期待しましょう!

【Macユーザー必見】fnキーを押さずにファンクションキーを使用する方法

f:id:nok-0930-ss:20171207175736p:plain

こんにちは、あつかんです。

Macユーザーの方はファンクションキーを使用するとき、わざわざfnキーを押しながら使用していますか?

ファンクションキーを多様する人にとってはこれはわずらわしい操作ですよね。

 

そこで、今回はfnキーを押さなくてもファンクションキーを機能させる方法を紹介していこうと思います。

 

方法

まずは以下の画像のりんごマークをクリックしてください。

f:id:nok-0930-ss:20171207171634p:plain

次はシステム環境設定をクリック。

f:id:nok-0930-ss:20171207171758p:plain

こんな画面が開かれるので矢印のところをクリック

f:id:nok-0930-ss:20171207171925p:plain

 

以下の画面が現れるので、キーボードアイコンをクリック

f:id:nok-0930-ss:20171207172034p:plain

 

以下の画面の、"F1、F2などのキーを標準のファンクションキーとして使用"という欄にチェックを入れてください。

f:id:nok-0930-ss:20171207174636p:plain

 

以上です。

簡単でしたねw

 

これでfnキーを押しながらファンクションキーを押すという鬱陶しい作業から解放されます。

 

ここで、ファンクションキーに重複されている機能である音量調整ボタンや画面の明るさ調整ボタンはどうやって機能させればいいの?って疑問が発生します。

この場合は逆に、fnキーボタンを押しながらそのボタンを押すことによって解決できます。

 

お役に立てたなら幸いです。

では、あつかんでした〜

Macのエンター2回の変換が鬱陶しいと思っている方へ

f:id:nok-0930-ss:20171207173120p:plain

 

こんには、あつかんです。

この記事を読んでいる人はおそらくMacユーザーの方だと思います。

Macユーザーの方は、かなを漢字に変換する際にエンターを2回押していますか?

私は以前、2回エンターを押していました。

これってかなりめんどくさくないですか?

めんどくさいと思っているあなたへ、その解決方法を紹介していこうと思います!

 

解決方法

まずは、このりんごマークを押してください。

f:id:nok-0930-ss:20171207171634p:plain

 

すると以下の画面が現れるので、システム環境設定をクリック!!

f:id:nok-0930-ss:20171207171758p:plain

 

次はこんな画面が表れます。矢印のところをクリックしてみてください。

f:id:nok-0930-ss:20171207171925p:plain

 

そしてキーボードアイコンをクリックします。

f:id:nok-0930-ss:20171207172034p:plain

キーボードアイコンをクリックすると以下の画面が現れるので、入力ソースってボタンをクリックしてみてください。

f:id:nok-0930-ss:20171207172230p:plain

すると、以下の画面が現れます。その画面にあるWindows風の操作キーのチェック欄をチェックしてください。

f:id:nok-0930-ss:20171207172444p:plain

 

以上です。

とても簡単でしたねw

これで二回エンターを押すという鬱陶しさから解放されます!

ちなみに自動で変換されるのも鬱陶しいと思っている方は、ライブ変換のチェックを外してみてください。

私はライブ変換も鬱陶しいと思っていたので無効化しました。

 

これで今後は快適変換ライフが送れますね!!

 

ではでは、あつかんでした〜

どの席に座るかで他人の心理はわかってしまう。

f:id:nok-0930-ss:20171204211733p:plain

こんにちは、あつかんです。

今日は心理系の記事を書いていこうと思います。

皆さんは、席に座るときに、どんなことを考えて席を選んでいますか?

ほとんどの人は、そこまで意識せずに席についていると思います。

しかし、意識していなくても席の選び方ひとつで、深層心理が現れます。

人間は無意識に、相手に抱いている心理条件によって、席に座る位置が変わってくるのです。

 

自分の位置に対して相手がどこに座るかを知っておくことで、相手は私に対してどのように思っているのかなどを予測できます。

 

今回は4つ座るパターンを紹介し、それに対する心理を見ていきたいと思います。

 

パターン① 角

f:id:nok-0930-ss:20171204200005p:plain

①の席に座った人は、あなたに対してリラックスしています。気軽に話すことができ雑談に向いた位置です。相手があなたに対して親近感を持っていることが分かります。

 

パターン② 隣

f:id:nok-0930-ss:20171204195944p:plain

②の位置は、あなたと共同作業をするようなときに適した座り方です。

この位置は体の接触が比較的に起こりやすいので、接触が起こっても不快に感じないような人が座ると予想されるため、②の人は親しい間柄だといえます。

恋人などは隣に座りますね。

 

パターン③ 真正面

f:id:nok-0930-ss:20171204200304p:plain

この座り方は一般的な座り方です。

一方、対立や説得、競争などの深刻な話題の時にも真正面の席を選ぶことが多いです。

もし、親しい間柄の人が改まって②の席に座ったなら、そのような話題になるかもしれないですね。

 

パターン④ 対角線上

f:id:nok-0930-ss:20171204200612p:plain

④の位置に座った人は、あなたとは別々の作業をするような人の座り方。

話し合いには適していません。

もし、話をするときにこの席を選ばれてしまったら、あなたとは疎遠な関係であり対立を起こしているかもしれません。

 

角テーブル?丸テーブル?

角テーブルと丸テーブルでは、座る人の心理によって微妙に異なってきます。

丸テーブルは上座というもの作りずらいので、そのテーブルに座る人たちに公平感が生まれます。

みんなと仲良く議論したい人は丸テーブルを好むようです。

角テーブルは上座というもの作りやすく、リーダーシップを発揮しやすい環境です。

そのため、リーダーシップを発揮したがる人に好まれます。

 

まとめ

今回は座る位置によって自分に対する相手の心理状態を推測しました。

当たり前ですが、近ければあなたに対して親近感があり遠ければ疎遠な関係でしたね。

この物理的な距離と心理的な距離は比例しています。

逆にこの心理作用を利用することもできます。

例えば、「あの人と親しくなりたいな~」と思ったら物理的な距離を近づけ、心理的な距離を縮めるのです。

物理距離を利用して心理距離を縮めることを「ボッサードの法則」というようです。

しかし、相手にはパーソナルスペーズというものがあり、その範囲内に入ってしますと逆効果になってしまうかもしれません。

なので、パーソナルスペーズにギリギリ入らないだろうという距離を攻めましょう笑

 

相手のパーソナルスペースなんか知るか!!!!

って思いますよね笑

 

内向的は人はパーソナルスペースが広く、外交的な人はパーソナルスペーズが狭いです。

つまり、相手の性格によって、近づける物理的な距離は臨機応変に変化させましょうってことですね~。

 

今回はこちらの本を参考に書かせていただきました!

他人の心理をもっと詳しく知りたい方は読んでみて下さい!

【初心者向け】ニューラルネットワークのソフトマックス関数とは?【連載⑤】

f:id:nok-0930-ss:20171203174342p:plain

こんにちは、あつかんです。

今回はニューラルネットワークの出力層の設計について説明していこうと思います。

ゼロから作るDeep Learningという本を参考にさせていただいております。

またこの記事は連載形式ですので、下の記事を読んでから読むことおすすめします。

www.it-lifelog.com

出力層の設計

ニューラルネットワークは、分類問題と回帰問題の両方に利用できます。

分類問題というのは、データのクラス分けです。

例えば、猫の画像を見せたときにそれは猫か?犬か?を分類するような問題です。

回帰問題は、ある入力から何かしらの数値を予測するものです。

たとえば、猫の画像を見せてその画像から猫の身長や体重を予測するような問題です。

 

分類問題と回帰問題によって出力層の活性化関数の種類が変わってきます。

分類問題ならソフトマックス関数を使い、回帰問題なら前のブログで説明した恒等関数を使用します。

今回は分類問題の焦点をあてていこうと思います。

 

ソフトマックス関数について

まずは、あらたにソフトマックス関数というものが出てきたので、それについて説明します。

ソフトマックス関数の式は以下のように表わされます。

f:id:nok-0930-ss:20171203165831p:plain

kはk番目のニューロンの出力であり、nは出力層のニューロンの数です。

分子は入力信号の指数関数、分母はすべての入力信号の指数関数の和です。

図で表すと以下のようになります。

f:id:nok-0930-ss:20171203173559p:plain

式の通り、一つの出力層に対して、すべての入力が結びついていることが確認できます。

ではソフトマックス関数を使って実際に数値を使って計算してみます。

f:id:nok-0930-ss:20171203165636p:plain

の時、y1,y2,y3は以下のようになります。

f:id:nok-0930-ss:20171203170119p:plain

f:id:nok-0930-ss:20171203170216p:plain

f:id:nok-0930-ss:20171203170253p:plain

だからなに?って感じですよね笑

次の説明でその疑問を解決します笑

 

なぜソフトマックス関数なのか?

先ほどの計算結果で示したように、ソフトマックス関数の出力は0~1の実数値に落とし込むことができています。

どんな値を使っても0~1の実数値が出力されるので試してみてください。

この0~1の実数値に収めることができるというのがソフトマックス関数の重要なところです。

なぜなら、出力値を確率として解釈することができるからです。

0.1なら10%、0.25なら25%のように。

確率として解釈できるということは、例えば以下の図のようにニューラルネットワークを利用できますね(かなり強引ですが)。

f:id:nok-0930-ss:20171203171806p:plain

上図より、ニューラルネットワークに信号(画像のピクセル値)を入力した結果、猫である確率が高いと判断されたました。

つまり、確率として扱うことにより画像に写っているモノは猫であると予測できるわけですね。

猫の画像を入力して、それが猫であるって判断を行うためにはニューラルネットワークを学習させなければなりません。

それについては今後説明します。

 

まとめ

今回は出力層に使われる活性化関数の一つとしてソフトマックス関数についてまとめました。

出力層にソフトマックス関数を使うと、出力の結果を0~1の範囲に実数値として落とし込めるので、確率的な表現ができることが可能になりました。

確率的な表現ができるということは、予測ができるということなので、なにかを分類するような問題に応用できます。

しかし、なにかを分類するためにはニューラルネットワークの重みなどを適切に設定しなければ正しく分類することができません。

では、ニューラルネットワークの重みはどのようにして設定するのでしょうか?

それはデータから学習させて重みを設定させます。

ニューラルネットワークの特徴はデータを学習し、重みのパラメータを自動で決定できるという点です。

次のブログではどのようにして、データを学習するのかについて述べていこうと思います!

では!

【初心者向け】ニューラルネットワークの実装【連載④】

こんにちは、あつかんです。

今回はニューラルネットワークの実装を行っていきます。

ゼロから作るDeep Learningという本を参考にさせていただいております。

このブログは連載形式ですので、過去のブログ↓を読んでから読み進めることをお勧めします。

www.it-lifelog.com

3層ニューラルネットワーク

ここでは図に示すような3層のニューラルネットワークを対象に実装していきます。

今回はforward側の流れ、つまり入力層から出力層への信号の伝達の仕方について説明します。

f:id:nok-0930-ss:20171202170006p:plain

第0層目から第1層目

まずは入力層から第1層への信号の伝達の様子を見てみましょう。

f:id:nok-0930-ss:20171202170838p:plain

a1(1)を数式で表すと以下のようになります。

f:id:nok-0930-ss:20171202171114p:plain

 

f:id:nok-0930-ss:20171202171452p:plain

 

a2(1)を数式で表すと以下のようになります。

f:id:nok-0930-ss:20171202171544p:plain

 

a3(1)の図は省略しますが、以下の式のようになりますね。

f:id:nok-0930-ss:20171202171645p:plain

上記の3つの式は以下のように行列の式でまとめられます。f:id:nok-0930-ss:20171202173053p:plain

ここで、

f:id:nok-0930-ss:20171202173110p:plain

です。

このように各ニューロンに対して、信号の総和を計算できました。

ニューロンは信号を受け取ったら、活性化関数h()を通して出力するので、次はそのプロセスを見ていきます。

第1層目のニューロンの中身を詳しく書きました。

 

f:id:nok-0930-ss:20171202180144p:plain

上図より、活性化関数を通して出力される信号の式z1(1)は以下のようにあらわされます。

f:id:nok-0930-ss:20171202174751p:plain

ここで、シグモイド関数を活性化関数として使用すると、以下のようになります。

f:id:nok-0930-ss:20171202174804p:plain

z2(1)も同様に計算して

f:id:nok-0930-ss:20171202174923p:plain

z3(1)も同様に計算して

f:id:nok-0930-ss:20171202174938p:plain

のようになります。

これらを行列の式でまとめると以下のようになりますね。

f:id:nok-0930-ss:20171202175333p:plain

ここで、

f:id:nok-0930-ss:20171202175345p:plain

です。

 

これで第0層目から第1層目までの信号の伝達の様子を確認しました。

 

第1層目から第2層目

次は第1層目から第2層目までの実装を行います。

f:id:nok-0930-ss:20171202181046p:plain

上記のような図の流れですので、

f:id:nok-0930-ss:20171202181829p:plain

つまり、

f:id:nok-0930-ss:20171202181615p:plain

となります。Z2(2)も同様に

f:id:nok-0930-ss:20171202181837p:plain

つまり

f:id:nok-0930-ss:20171202181903p:plain

となります。

これらを一つの行列式にまとめると以下のようになります。

 

f:id:nok-0930-ss:20171202182221p:plain

ここで、

f:id:nok-0930-ss:20171202182242p:plain

です。

これで第1層目から第2層目までは終了。

 

第2層目から第3層目

次は第2層目から出力層までの実装をしていきます。

f:id:nok-0930-ss:20171203161353p:plain

ここで出てきたσ()は恒等関数といいます。

これは出力層の活性化関数として利用されます。

恒等関数は入力をそのまま出力関数です。

出力層の活性化関数には、恒等関数、シグモイド関数、ソフトマックス関数のどれかが使われるのですが、今回は恒等関数としました。

出力層の活性化関数に関しては、次の記事で説明してきます。

 

つまり、出力の結果として

f:id:nok-0930-ss:20171203161543p:plain

f:id:nok-0930-ss:20171203161722p:plain

 

y2もy1と同様にして、

f:id:nok-0930-ss:20171203161818p:plain

f:id:nok-0930-ss:20171203161824p:plain

 

といった式になります。

以上で3層ニューラルネットワークのforward側の説明は終わりです。

 

まとめ

今回はforwardの流れ、つまり入力から出力方向への伝達処理を理解しました。

実はニューラルネットワークは学習するためにはbackwardの流れ、つまり出力から入力方向への処理も行わなければなりません。

これについて、後ほどの記事に出てくるので少々お待ちくださいw

次回は、出力層の活性化関数について詳しく述べていこうと思います。

続きはこちら

www.it-lifelog.com

【初心者向け】ニューラルネットワークの活性化関数とは?【連載③】

どうもあつかんです。

今回はニューラルネットワークに使用される活性化関数について説明していこうと思います。

ゼロから作るDeep Learningという本を参考にさせていただいております。

 

また、このブログは連載形式ですので下の記事を読んでから読むことおすすめします。
www.it-lifelog.com

www.it-lifelog.com

 

活性化関数とは?

活性化関数については

【初心者向け】ニューラルネットワークとは?【連載②】 - IT-LIFEブログ

で簡単な説明がしてありますが、ここでも少し説明しようと思います。

活性化関数とは入力信号の総和をどのように活性化(発火)させるを決定する役割があります。

活性化関数にも複数の種類があり、ステップ関数、シグモイド関数、ReLU関数というものがあります。

過去記事からわかるようにパーセプトロンでは活性化関数としてステップ関数が使われていましたね。

ステップ関数とは下図のように閾値を超えていたら1を出力、閾値を超えていなかったら0を出力するような関数でした。

ここで質問です。

パーセプトロンをニューラルネットワークの世界に拡張させるためにはどうしたらよいでしょうか?

 

答えは、パーセプトロンで使われている活性化関数を別の関数に置き換えることで、ニューラルネットワークの世界へ進むことができます。

では、ニューラルネットワークで使われている活性化関数を見ていきましょう。

 

様々な活性化関数

シグモイド関数

シグモイド関数はニューラルネットワークでよく使われる関数の一つです。

式は以下のようにあらわされます。

f:id:nok-0930-ss:20171201171513p:plain

exp(-x)はeの-x乗という意味です。eはネイピア数で2.7182.......の実数です。

グラフは下図のような形になります。

ニューラルネットワークとパーセプトロンの主な違いは、この活性化関数だけです。

パーセプトロンはステップ関数、ニューラルネットワークはシグモイド関数など。

これだけなのです。

 

それではステップ関数とシグモイド関数を比較するためにグラフを重ねてみます。

この図をみて気づく点は、グラフの”滑らかさ”の違いだと思います。

シグモイド関数は入力に対して連続的(滑らかに)に変化していますが、ステップ関数は0を境にして急激に値が変化しています。

この違い、つまりシグモイド関数の滑らかさがニューラルネットワークの学習において重要な意味をもっています。

その理由は今後の記事で紹介していきます。

また、ステップ関数は1か0の値のみしか出力しませんが、シグモイド関数は0から1の間の実数(0.37469や0.98893など)を返します。

つまり、デジタル的な変化でなく、アナログ的な変化を含ませたわけです。

人間の脳はアナログの情報でやり取りしていますので、それに近づいたわけですね。

ステップ関数とシグモイド関数の共通点として、両者とも入力が小さいときほど小さい値を出力し、入力が大きい値ほど大きい値を出力しています。

つまり、重要な信号であれば大きな値を出力し、重要でない信号であれば小さな値を出力します。

また、出力の値は0から1の間のみだということもわかります。

 

ReLU関数

これまでに、活性化関数としてステップ関数とシグモイド関数を紹介しました。

シグモイド関数はニューラルネットワークの歴史において古くから使用されています。

しかし、近年ではReLU (Rectified Linear Unit) 関数という活性化関数が主流となっているようです。

この関数は0を超えていれば入力の値をそのまま出力し、0を超えていない場合は0を出力するといった単純な関数です。

図で表すとこんな感じ。

式で表すとこんな感じ。

f:id:nok-0930-ss:20171201174141p:plain

とても簡単な式ですね。

閾値以下の入力は0(重要でない)、閾値以上の入力は入力の値をそのまま出力、つまり重要度に比例した値を出力するといった機構ですね。

 

以上で活性化関数の説明は終わりです。

 

まとめ

今回は活性化関数について紹介していきました。

パーセプトロンの活性化関数はステップ関数であり、その活性化関数をステップ関数以外の関数に置き換えることにより、パーセプトロンをニューラルネットワークの世界に持っていけるということが分かりました。

ステップ関数以外の関数とは、シグモイド関数、ReLU関数などでした。

ではなぜ、シグモイド関数や、ReLU関数がニューラルネットワークに使用されるのか?

それは二つの関数にはステップ関数にはない”滑らかさ”があるからでした。

その”滑らかさ”が、ニューラルネットワークの得とする”学習”にとって非常に大切な意味を持ちます。

なぜなのか?

それについては今後のブログで書いていきますのでご安心を♪

 

ではでは。

続きの連載④はこちらです。

www.it-lifelog.com