研究室での学習内容について

卒論だけがゼミじゃない!

感性情報システム研究室では,研究テーマを先輩から引き継ぐだけでなく,自分で考え出した研究テーマについて研究を進めることができます.この「研究活動」に加えて,メンバーの「発想力」「プレゼンテーション力」「英語力」を高めるための様々なゼミや演習を行っています.

学部生研究報告会の様子

この写真は月に1度行われる学部生研究報告会の様子です.この会では,作成したスライドを基に自分が考えている研究を発表し,先生を含めた全員でディスカッションをしていきます.学部生はこの会を通して,自身の研究テーマを策定していきます.

年に一回のゼミ旅行!

研究室での活動以外にも,先生や生徒間の親睦を深めるために夏季休業期間中で年に一回ゼミ旅行に行きます.

ゼミ旅行の様子

この写真はゼミ旅行での1シーンです.本イベントを通して,協調性を身につけたりメンバー同士の結束を固めたりします.行先や旅行の内容は学部生が主体となり決定します.
ゼミ旅行以外にも不定期で飲み会を行なっています.

主なゼミ行事

その他にゼミで行われている主な行事について簡単に説明します.

【プログラミング演習(C,C++,C#)】(研究室配属~7月頃まで)

研究室に配属されてから1ヶ月の間にWindowsプログラミングをマスターします.基本的なC言語プログラミングは1週間程度で終了し,C++および.NETフレームワークを用いたWindowsプログラミング演習に進みます.

【知的情報処理輪講】(週1回,4月~6月頃まで)

プログラミング演習と並行して,知的情報処理の基礎について輪講形式で学習します.知的情報処理輪講では,題材として巡回セールスマン問題(traveling salesman problem:TSP)などを扱います.

【活動報告】(週1回)

週に1度,Teamsに報告書を提出してもらいます.報告内容は,先週に行った活動や活動予定などをまとめたものになります.

【英語輪講】(週1回)

発音力や単語力を向上するために実施します.

【飲み会】(不定期)

月に1度の報告会の後や夏季休業明けなどには飲み会を行います.

最近のNEWSはここをクリック!

プログラミング演習

プログラミングは,道具です.

人にやさしいコンピュータシステム,生き物らしいロボット,人の嗜好を探るコンピュータ,人の潜在的な感性を発見するための分析ツール,etc...感性情報システム研究グループでは実際に「使える」・「動く」ソフトウェアを開発します. 研究では,研究者だけが理解できる数値シミュレーションを実行するプログラムもありますが,我々が作るモノの多くは「開発者以外」が使用する,または「開発者のいない環境で」使用されることを想定しています.この場合,一般ユーザにもわかりやすいユーザインタフェースの設計や,あらゆる状況を想定した制御プログラムを用意する必要があります. したがって,プログラミングは「ツール」として自由に使いこなさなくてはなりません. よく,「プログラミングを学びたいから」という動機で当ゼミを希望する学生さんがおりますが,これは電子回路設計を行う研究室の志望動機に「ハンダ付けを学びたいから」と言っているのと同じです. つまり我々のゼミにおいてプログラミングは,出来て当然(好きならなおオッケー)なのです.

RIZAPもびっくりの3ヶ月トレーニング(4月~6月)

そうは言っても,ゼミ配属時からバリバリのプログラマーという学生は皆無です.当然,配属になってからのトレーニングで,誰もが例外なく一定のレベルのプログラミングスキルを習得することができます. まず,配属されてから4月までに,C言語の基本的なプログラミングを独学で習得してもらいます.そして,4月1日にいきなりC言語のプログラミングテストを行います. C言語課題(4月上旬~中旬)…主に構造体とポインタを絡めた複雑なプログラムに取り組みます. モンテカルロ法課題(4月2週目〜4週目)…組み合わせ最適化問題として有名な巡回セールスマン問題をモンテカルロ法で解くプログラムを作成します. C++言語課題(4月中旬〜下旬)…上記課題と並行して,オブジェクト指向言語であるC++プログラミングを習得するために,基礎的な課題に取り組みます. タブーサーチ課題(4月3週目〜5月1週目)…局所探索法の1つであるタブーサーチ法を用いて,巡回セールスマン問題を解くプログラムを作成します. シミュレーテッド・アニーリング課題(4月4週目〜5月2週目)…組み合わせ最適化問題の解法として,有名な「焼きなまし法」を用いて,巡回セールスマン問題を解くプログラムを作成します. 遺伝的アルゴリズム課題(5月1週目〜5月3週目) …組み合わせ最適化問題の解法として,「焼きなまし法」と並んで有名な遺伝的アルゴリズムを用いて,巡回セールスマン問題を解くプログラムを作成します. 免疫アルゴリズム(5月2週目〜5月4週目)…遺伝的アルゴリズムの改良手法である免疫アルゴリズムを用いて,巡回セールスマン問題を解くプログラムを作成します. アントコロニー最適化法課題(5月3週目〜5月5週目)…巡回セールスマン問題に近似最適解を生み出すために用いられるアントコロニー最適化法を用いて,巡回セールスマン問題を解くプログラムを作成します.また,これら6手法の性能比較を行います. ホップフィールド・ネットワーク課題(5月4週目〜6月1週目)…パターン認識の有名な手法の1つであるニューラルネットワークを用いて,数字認識のプログラムを作成します.ここからはWindowsアプリケーションプログラミングになります.

ニューラルネットワークを用いた数字認識

階層型ニューラルネットワーク課題(5月5週目〜6月2週目)…ホップフィールドとはネットワーク構造の異なる階層型ネットワークを用いて,同じく数字認識のプログラムを作成します. 自己組織化マップ課題(6月1週目〜6月3週目)…様々な入力データを、それらの類似度に応じて自動的に分類するクラスタリングする自己組織化マップを用いて,数字認識のプログラムを作成します. ファジィ課題(6月2週目〜6月4週目)…あいまいな情報を処理するのに便利なファジィ制御を用いた例題プログラムを作成します.

ファジィ制御による速度推論

対話型進化計算課題(6月3週目〜7月1週目)…人間の直接評価によって感覚的な物の最適化を行う対話型遺伝的アルゴリズムを用いて,デザインの最適化を行う例題プログラムを作成します.

対話型遺伝的アルゴリズムによる模様生成

知的情報処理輪講

基礎から応用まで幅広く

感性情報システム研究室では,研究を進めるにあたって必要となる知的情報処理の基礎技術について,毎週輪講形式で学習を行います.また,それぞれの理論を学んだあと,より実践的な演習としてプログラミング課題に取り組みます.

第1回 遺伝的アルゴリズム

遺伝的アルゴリズムは,この研究室で最初に学ぶ最適化手法で,自然界での生物の進化と遺伝にモデルにしたものです.これらは,自然淘汰により最適な遺伝子が残ってきたように,システムの中で自然淘汰のシュミレーションを行い最適解を求めようというものです. 巡回セールスマン問題やナップザック問題などの最適化問題における最適化プログラム作成し,知識を深めていきます.

第2回 シミュレーテッド・アニーリング

シミュレーテッドアニーリング(Simulated Annealing;SA)は,高温で加熱した金属の温度を徐々に下げて冷やすことによって,もとの金属より欠陥の少ない優れた結晶構造を作る物理プロセス(焼きなまし)を計算機上で模倣した最適化手法です. SAの基礎となる最適解の探索法として局所探索法(Local Search;LS)があります. LSは逐次的な解の改善操作を繰り返す最適化手法です.近傍内に目的関数を改善する点が存在しない場合にLSは停止します. 下図のように目的関数が複数の極小値を持つ場合では,初期解をX0にとると,近傍内に改善する点が存在しないX1の状態で停止し,LSでは最適解に到達できません.これに対してSAでは,LSでの暫定解の更新法として目的関数を改善するものだけでなく,改悪となるものもときには許し,局所最適解からの脱出を可能にします.

SAの概念図

第3回 タブーサーチ

タブーサーチの輪講では,GA,SAと同様に巡回セールスマン問題についてのプログラムを作成します. タブーサーチは状態の近傍を複数探索しその中で最も良い状態に遷移します.このときタブーリストと呼ばれるものに状態遷移時の操作を書き込みます。このタブーリストに書き込まれている操作は行わないことにより状態がループするのを防ぐことで探索が停滞せずに最適解を探索することができます。 これにより,タブーサーチは局所解に陥りにくくなります.

GAとTSのモデル比較

第4回 遺伝的プログラミング

遺伝的プログラミング(以下GP:Genetic Programming)は,遺伝的アルゴリズム(以下 GA:Genetic Algorithm)の遺伝子列をグラフ構造や木構造の取り扱いができるように拡張した進化的アルゴリズムです. GPの応用例には自動プログラミングや人工知能の作成などがあります. 輪講の課題のANT問題とは限られたエネルギーで人工蟻がより多くの餌を取るプログラムを自動生成する問題です.上図は木構造であり,aを根,b・d を非終端子,c・e・f・g を終端子と言います.終端子をそれぞれロボットの簡単な1つの行動(進む,回転など)を表すとします. 図のように木を辿ったとすると人工蟻が e→f→c→g の順に行動を行うことをその木構造が示しています.したがって,木の構造をGAの遺伝子列として扱うことで最適な人工蟻の行動をプログラミングすることができます.

第5回 ニューラルネットワーク(相互結合)

ニューラルネットワークは,脳機能に見られるいくつかの特性を計算機上のシミュレーションによって表現することを目指した数学モデルです.自己想起とは,顔の一部を見ただけで顔全体が想起されるような場合を言い,相互想起とは,果物と聞いて,例えばミカンを想起するような場合を言います.このセクションでは,前者の自己想起の過程をプログラムで作成します. 本輪講では,ノイズの混じった数字データから,もとの数字を復元するという,簡単な文字認識プログラムを作成します.

ニューラルネット(相互結合)のプログラム実行例

第6回 ニューラルネットワーク(階層型)

ニューラルネット(以下 NNとする)とは人間の脳の仕組みを模倣した情報機構のことです.これは神経細胞(ニューロン)をモデル化したものを多数つなげてネットワークを構成し, 新しい情報処理原理を追及することが目的です. 階層型NNではニューロンを下図のように入力層,中間層,出力層を用意します.このNNは教師あり学習の誤差逆伝搬法(BP法)という方法を用いて学習をしていきます.

階層型NNのモデル

以下にその手順を示します. 1.NNに入力し出力を得ます. 2.出力と教師信号(手本となる値)と比較し2つの値の誤差を求めます. 3.その誤差によりNNのニューロン同士の結合荷重を調整し教師信号に近づけます. ※結合荷重とはニューロン同士を結んでいる重みのことです. この1~3の操作を繰り返し行うことで入力をするとそれに対応した値(教師信号と近い値)が出てくるようになります.

第7回 ファジィ制御

ファジィ制御とは,ファジィ集合論に立脚して制御モデル等を構成する方法です.ファジィ集合論は,0または1といった境界がはっきりした集合論とは異なり,中間の状態を許容する集合論です.たとえば35歳の人間は「若者」0.4,「中年」0.5,「老人」0.1,といった感じです.これにより,人が用いる主観的であいまいな表現(やや,とてもなど)を定量的に扱うことができます. 輪講では車の速度制御を題材として内容理解に取り組んでいます.具体的には, ファジィ集合の決定(例 時速80kmは「速い」0.8,「遅い」0.2) ファジィルールの決定(例 もし時速80km以上なら5km減速する) ファジィ推論(複数のファジィルールを組み合わせる) 以上の内容をWindowsアプリケーション等で作成します(下図).

第8回 対話型遺伝的アルゴリズム

対話型遺伝的アルゴリズムとは人間の主観評価値に基づいて最適化を行う技術の一種で,遺伝的アルゴリズムの解候補となる個体の評価を行うために用いられる目的関数を,人間の直感的評価に置き換えた計算手法です. このため,定量的な評価を行うことが比較的困難な製品デザインなどの感性評価や,ユーザ個人の主観評価が必要となる製品のカスタマイズなど,人間の好みや主観が考慮されるべき問題に対して有効とされています.