Archive for the ‘ススメ’ Category

Python独習のためのチャート

水曜日, 4月 5th, 2017

プログラミング1(Python)の授業を持つようになってから、他学部から「受講or勉強したい」相談が舞い込むようになりました。後期はゼロなのでPythonに興味持つ人が増えてるのかなと想像しますが、実際の所はまだ良く分からず。今後も続くようならPython人気なんでしょう。

2017年度に関しては、入学者数自体が例年と比べて多いので、残念ですが受講は断ってます。その代わりに、、、ということで独習のための情報を折り返し伝えるようにしているのですが、何度も似たようなメール書くのもあれなので(便利な日本語)、目的別情報源を整理してみることにしました(上記PDF, GitHub参照)。書籍・サイト情報が少ない箇所は私自身が把握していない場所ですね。

実装方法チュートリアルとクラウド環境を用意した上でコンテスト開催してるらしい

木曜日, 1月 26th, 2017

応募多数で一時的にクラウド利用は締め切られてるようですが、人工知能技術戦略会議等主催 第1回AIチャレンジコンテストというのが開催されてるらしい。クックパッド提供の画像から料理領域検出するか、料理カテゴリ分類するタスク。

外部データの使用は禁止
  配布する学習データ以外のデータを用いてモデルを学習することは禁止と致します。

APIの使用(Google Cloud Vision API等)は禁止
  ただし、オープンソースの学習済みモデルやライブラリ(tensorflow, chainer, keras, etc)等は使用してよいものとします(ただし商用は禁止)。

このあたりに「コンテスト設定の難しさ」を感じるな。

あれこれコストかけてるのは、それでも利用者が表に出てくれることにメリットが有るとか、目ぼしい人材にリーチできるとか、コンテスト後の環境利用を検討してもらえるとか。開催側にもいろいろメリットが有るんだろうなとは思いますが、うまいこと連携してイベント開催してるところは凄い。

P.S.
DeepAnalyticsのコンテストに限りませんが、誰でも簡単に参加できる競争型イベントあちこちでやってるので、興味があるものがあったら取り敢えず参加してみると良いんじゃないかと。実際、学生だけで参加してるケースはそこかしこにあります。比較的「研究色が強いケース」だと研究室配属してるケースばかりになりがちですが、こういうコンテスト系だとそうじゃない学生でも割りといたりします。参加してみることで得られる気づきや体験があることもそうだし、辞退も簡単だし。機会をどう活かすは皆さん次第です。友人・先輩らとチーム組むのもいいだろうし、先生と相談してみるのも一つの手。大学という場を活用しよう。

無料でプログラミング独習できるサイト(主にPython)

火曜日, 3月 8th, 2016

新入生に紹介するのに良さそうなサイトが有れば教えて下さい! という記事です。


2次元美少女がPythonを無料レッスンしてくれる動画が公開~cvに上間江望さん起用」ということで久しぶりにpaizaを覗いてみたんですが、いつの間にかPython 3.4にも対応してたんですね。紹介されてたpaiza learning(動画学習)「1テーマあたり数分程度の動画説明->ブラウザ内で演習」という流れで進むので、割りと良さ気です。ただし欠点もあって、課題が正しく動いてるかどうかを自動でテストしてくれるのですが、そのテスト内容が全くわからず、「テストに失敗した」ぐらいの情報しかもらえないので、どこをどう改善したら良いのかについての検討材料が無いところは独習に向いてません。(たまにどう考えてもテストの方がおかしいんじゃないかという事例もあったり。私の理解不足という可能性も十分ありますが。)
ちなみに開発途上だからだと想像しますが、動画学習の1章を終えると「paiza Code Gym(1分間タイムアタック)」へのリンクが出てくるんですが、これがPHP版しか用意されてません。Python勉強してPHPで戦えってどういうことよ〜。

似たようなものにドットインストールがありますが、こちらはまだPython 2.xのみっぽいのと、演習課題はなかった気がする(今もそうなのかは知らない)という点でやや物足りない感がありそう。ただし他言語含めて幅広くあれこれ扱ってるという点ではこちらが上ですね。

同じく独習向きサイトとしてはプログラミングコンテスト関連がありますね。slideshareの方が見やすいという人はこっちを見よう。中身はどっちも一緒。この記事ではあれこれ整理して紹介してくれててどこから入ろうかの目安が分かりやすいです。コンテスト系の難点は、こちらのやりたいタイミングでやるというのが難しいことが多いことか。比較的長い期間開催しっぱなしのもあるけど、決められた特定の時間帯にしかやれないのも少なくない。公開されてる過去問で良いなら時間制約もなく、お手頃だと思います。

コンテストではないけれども共有&競争しやすい場を提供してる例としてはCheckiOみたいなタイプがあります。ただ難易度設定が怪しい気もする。例えば一番最初の課題(一番上に表示されたものを選択してみた)が「リストに含まれる数値から非ユニークなものだけを残せ(1度しか出現しないものは削除しろ)」というような課題で、リストもカウントもif文もfor文も知らないとできない課題になってたりします。一度基礎をどこかで学んだ上で「課題ベースで学び直したい。他の人のコード例も読んでみたい」という人向けのサイトかな。

これまでとちょっと違う例としては「プログラミングの勉強」に特化したソースコード検索エンジン「Runnable」が便利過ぎ!なるものが。ただ、ちょっと触ってみた感じでは使い勝手悪い気がするな。探し方が悪いのかもしれないが。

取り敢えず課題がほしいという人向けには、こんなものも。

先に出したものもまとめておこう。

こんなところかな?

研究はストーリーを大事に

水曜日, 1月 13th, 2016

卒論&修論シーズンになると毎年言ってることですが「ストーリーのない論文」ほどつまらないものはないです。別の言い方をすると「ストーリーがないテーマにどんな意味・意義があるのか理解できない」です。如何にそのテーマが面白いのか、語ってください。単に小説(物語文)のように書けば良いというものではありません。タイトルから推測される目的・目標がズレないように関連研究を示しつつ何が新しい点なのかを示しつつ、その重要性を訴え、それを実現するためにどのような手段をとったのか、その結果わかったことは何か、実現できなかったことは何か、構造立てて論理的に語ってください。

とか色々参考になるページはあります。もちろん書籍も含めて。日本語表現法入門で教科書指定されてると思われる「理科系の作文技術」も大いに参考になるでしょう。


そろそろ卒論書き始めないとまずいよね?ということで今日の週ゼミは章立て&ストーリーに関する話をしてました。体調不良になりやすい時期でもあるので、動けるうちに稼いでおこう〜。

(不定期コラム) 振り返りサマリ(地図)製作のススメ

月曜日, 5月 11th, 2015

前に書いた地図を作ろうをもう少し真面目(?)に書き直してみました。

振り返りサマリ(地図)製作のススメからダウンロードできます。やけに脚注が充実しているように見えるのは気のせいです。研究活動をターゲットにしていますが、比喩的に書いてる内容が多いので「新しいことを学ぶ」人なら誰にでも該当するんじゃないかと。これ自体が分かり難い地図だとか、ツッコミは随時お待ちしていますw

(不定期コラム) 地図が無ければ描けば良いじゃない(サーベイ)

火曜日, 3月 31st, 2015

久しぶりのコラム記事

ここ数日は新配属生らの興味キーワード関連の事例集をピックアップ紹介する記事作成してます。これ全部読め〜という訳ではなく、あくまでもアドバイス。「取りあえずやってみて」で丸投げするのも一つの方法で実際やってる部分もあるんですが、それとは別に「例えばこういうのがあるよ」と具体的な調べ方or実際の情報源を提示することで出発点や視点を増やす意味合いでやってます。例えば(不定期コラム) 機械学習 #ieryukyu_readingsみたいなやつですね。

あれこれ目を通して欲しいという気持ちもあるし、掘り下げて欲しいというのもあるし。新しい世界を歩むには何らかの方法で世界地図を作り上げて行く必要があるけれども、その方法は必ずしも自明でもなく。実社会に根ざしている話でもあるように月日と共に地図が書き換えられてるこっともあれば、自身の変化に伴って見えてくる側面が増えてきて色鮮やかになったり。調べ終えたはずのことが月日と共に結果が変わることもあるし、ただのヒューマンエラーで実は違ってたということが改めて浮き彫りになることもあるし。手足を動かして追体験してみることもあれば、又聞きという形で情報収集することもあるし。「地図を描く」ためには多くの資料を読み進める必要があるわけで、一般的にはこれらの作業を調査研究とかサーベイと呼びます。いや、調査研究というとこっちのような一段上の意味合いで捉えることの方が多い?かも。ということでここではサーベイと呼んでおきますが、読むだけじゃなくてそれらを自分なりに咀嚼し直す(何らかの形でアウトプットする)のが大切。イメージしやすいように「地図」と表現してますが、目的に応じて地図が多種多様あるように、自分の目的に応じて作り上げて行くことになります。目的自体が分からないなら「手探りで進む」ことになるのでしょう。その試行錯誤を通して少しずつ「使いやすい地図」が形作られていくはずですし、その具体例としては「サーベイ論文」や、「個々論文の関連事例との兼ね合い」を複数見ていくことでイメージしやすくなると想像します。

web上にも「サーベイ 方法」ぐらいでググると一杯引っ掛かりますね。

あたりも参考になるんじゃないかと。

「Proc.って何ですか?」と質問してた日が懐かしい〜。

ネタ出しはその時になってから考えるというよりも普段から出しておくことでアウトプットしやすくすると同時に再利用しやすくする

月曜日, 11月 17th, 2014

卒業研究を除外すると、情報工の講義/実験でアイデアを出すことが求められるのは以下の科目ぐらい?

これが多いのか少ないのかは分かりません。発想できるだけでもヨロシクナイし。(それだけで食っていく道もあるっちゃあるだろうけど)

アイデアの出し方という点では、今年度からPD2でいくつかの手法を実際にツールとして使ってみるという演習をやってみました。それがうまく機能するかは「?」ですが、やらないよりは良いだろうぐらいの気持ちで。後は、学科としては京大と合同主催のデザインスクールというイベントも。勿論というか、実装寄りのイベントは昔っからあれこえあって、設計よりのイベントという点ではここ数年ぐらい?

こういう「ネタ出し」というのは必要な時に無理やりひねり出すというよりは、(使えないようなもので構わないから)普段からアウトプットし続けるというのが重要だという立場。それでネタ出しのススメ with 論理的思考という記事も書いたし。閃くことの天才ならこんなことするまでもないのだろうけど、普通の人は普通なりに数こなすことで見えてくるものがあるわけで、その一例が「岡田斗司夫のひとり夜話」の「ノート術」だったり、ゼロ秒思考 頭がよくなる世界一シンプルなトレーニングだったり。もしくは新版 これからの思考の教科書 論理・直感・統合という話も。

「ゼロ秒思考」や「新版 これからの思考の教科書」に興味がある人は、2年次の自習室に借りにいくと良いかも。naltoma文庫として置いてあるので。

(不定期コラム) こんなレポートは嫌だ

土曜日, 6月 28th, 2014

先日実験1のレポートチェックを終えましたが、今年ならではのという話ではなく、私が教員として大勢の学生を相手にチェックするようになってからずーーーーーーっと続いてる普遍的な傾向。つまりは例年やってるレポート指導。折角なのでまとめておこう。

傾向を大別して「一般的なレポートとしてのおかしさ」と「LaTeX文書としてのコマンド等のおかしさ」に分けてみました。


一般的なレポートとしてのおかしさ

悪い点まで含めて丸々コピペ。
先輩等含めて他人のレポート参照するのは推奨してます。理解して自分で書くなら。理解もせずにコピーするのは「コピー機」でしかなくて、何の勉強にもなっていないのだけど、高い授業料払ってそれで良いの?。電子ファイルは複製しやすいですが、それと同じぐらいコピペ判定も簡単なのを分かっていないのだろうなとも思う。「悪い点」までコピペする(それを採点するコストを他人に強要する)というのは喧嘩を売ってるということだよね?
日本語の文章になっていない。
見出しでもなく本文中に「結果」と一言書いて図表掲載してるだけとか、文章が日本語になっていないというケース。報告書以前の問題なので、まずは文章書けるようになってください。参考文献としては「知へのステップ―大学生からのスタディ・スキルズ」、「大学生のためのリサーチリテラシー入門」とか? いや、まずは「文章で説明しろ」というだけの話なんですが。
句読点の使い方がおかしい。
補足も何もあったものではないですが、文字通り「句読点が無い文章」や「本文中の句読点が不揃い」というケース。個人的なメモなら自由にやってくれて構いませんが、レポート(報告書)ならそれなりの文章を書こう。
パラグラフを意識していない。
ツイートとかの short message 系ツールに慣れ親しんでるから、という訳でもなくこれも昔っからある傾向ですが、パラグラフが存在していないケース。句読点で改行されてることが多いけど、無関係に改行が入ることも。パラグラフで書けないということは、報告書が構造化されていないのと同等なので、意識して(章節や段落という意味で)構造化文書を心がけよう。構造化文書書けない人はプログラミングも苦手だろうなと思う。どう心がけたら良いかの具体例としては、「やればできる 卒業論文の書き方」か「レポートの組み立て方」あたりを一度は読んでみるとか。
本文の無い節がある(箇条書きだけ/図表だけ/本当に何も無い)。
これも見出しだけで言い切ってますが、「2.2 結果」と見出しに加えて図や表はあるもののそれに関する説明文等が本文中に一切無いケース。派生ケースに「自由課題に取り組んでる割には目的/手段を述べずにいきなり結果を示してる」ものも。一般的に、報告を受ける人はエスパーじゃないので文章でストーリーを説明してください。
図表や参考文献を本文中で参照していない。
授業レベルのレポートではそれでも良いかなとも思えるのですが、正式には「どこで参考にしたか」を参照して示すべき。例えば web でリンク張る時に無関係の所にリンクが用意されててもムカつくよね?
図表にタイトルが無い or 同一タイトルの図表がある。
原則として同一タイトルで異なる図表が同一レポート内に存在するというのは不適切。違う意図があって作図したからこそ複数掲載しているはずなので、図表事に適切なタイトルを付けよう。
折れ線グラフ等の軸ラベルが小さすぎて読めない。
ベクター形式になってるなら拡大して読めますが、それでも本文の文字サイズと比べてラベルの文字サイズが小さすぎるなら、改めましょう。誰でも読み易くない報告書は読みたくないよね?
(ソースコードではなく)本文中で用語等をダブルクォーテーションで囲う際に向きを気にしない。
“ここを強調したい”のようなケースでカギ括弧や丸括弧は剥きに気を使うのに、本文中のクォート類で向きを無視する人多数。プログラミング言語では剥きが無いことケースも少なくないからだとは思うけど、文章中ではちゃんと剥きを整えよう。
結果を現在形で書く。
分かった事実は過去形で書こう。関連して、事実とそうでないもの(考察等)は文章から明確に区別できるように書こう。

LaTeX文書としてのコマンド等のおかしさ

texを使う理由は、数式等を綺麗に出力したいからだけではなく、目次生成/図表文献番号の整理等を自動化するためでもあります。例えば、途中で図表を中間に追加したり文献追加したりする度にそのインデックスを自分の手で書き直すのは嫌ですよね?

図表のインデックスを手動で書いている。
図表なら caption で図番号&タイトル付けると共に、label でユニークなラベル名を付けよう。本文中から参照するには ref。参考文献なら bibitem と cite。
PDF/EPSといったベクター形式で作図したのに、PNG等のラスター形式に劣化させたあげくファイルサイズを数十MBにして掲載する。
お願いだから辞めてください。ebbでbounding box情報を抽出して、テンプレートを参考に埋め込めるようになろう。
目次を手動で書いている。
tableofcontents 使おう。勿論、section/subsection 等で見出しを書いていることが前提になります。(こういうのを自動生成するために目印を付けるのが section等のコマンドな訳だ)
section, subection 等を使っていない。
前述の目次にも絡む理由で、見出しにはちゃんとコマンドを使おう。言い換えると見出しと本文を明確に区別しよう。
\\ で改行しまくる。
新しいパラグラフを始めるなら「空行」をいれよう。\\ では「新しく段落が始まる」ということを tex が認識してくれないので、「段落始まりである時下げ(スペース)」を自動で入れてくれません。
本文を verbatim で書く。
気持ちは分かる。けど、それ何の解決にもなってないネ。似たケースに table や何かしら罫線で囲う人も。こうして罫線文化が生まれているのかなぁ。。本文は環境使わずにそのまま書こう。
本文中で記号をエスケープせずに全角で書き直して出力する。
verb なりエスケープするなりして半角のまま記号を出力しよう。

その他:担当教員名の誤り。

(年次指導でもあるのに。しくしく)

(不定期コラム) プログラミング #ieryukyu_readings

日曜日, 1月 19th, 2014

「何かしらの専門分野に関する読み物の紹介」第3段は、ややベクトルの異なる「分野」ですが1年次から比較的多かったキーワード「プログラミング」を取り上げてみます。


今回紹介するのは、プログラミングについて学べるサイト3件「ドットインストール」、「CodeIQ」、「CodingBat」です。

ドットインストール (3分動画でマスターする初心者向けプログラミング学習サイト)
  • トップページの解説文の通りですが、様々なプログラミング言語・データベース・Webサービス・iPhoneアプリ開発等々についての「3分動画集」です。講義形式に近いですが、好きなタイミングで動画を止めれますし、勿論戻ることも可能と良いことずくめ。講義でもやってるC言語やJavaもあります。
  • iOS アプリの実機テストには iOS Developer Program への登録が必要ですが、情報工学科は河野先生のお陰で学科で教育機関登録されているため無料です(やりたい人は河野先生or當間までメールください)。
  • webサービス関連だと、いわゆる(外部から見れない)クローズドなサイトではなく、学科としてグローバルIPアドレスが大量に確保されてて簡単に申請できるし、ブレードサーバで仮想OSを動かすことも簡単にやれるので、サーバ立ててあれこれ試してみるのも無料でやれます。どれだけ使っても無料なので、使えば使うほど得します。どしどし使おう。
  • Windows / Mac OS X / iOS / Androiod 等、多数の環境で動作する統合型ゲーム開発環境Unityもあるらしい。公式サイトにもチュートリアルありますが。
CodeIQ (ITエンジニアのための実務スキル評価サービス)
  • ドットインストールが講義に近い位置付けなのに対して、CodeIQはドリルに近い。基礎を勉強するというよりは課題解決を通して学ぶという取り組み方ができます。
  • トップページにあるように「問題に解答する->(受付中の問題なら)フィードバックを受ける」が基本的な流れですが、過去問も残ってるのであれこれ探してみると良いかと。中にはプレゼント特典がついてる問題があることもあります。
  • 取りあえず眺めてみたいという場合にはwebマガジンRSS@codeiqあたりを眺めてみると良いかと。
CodingBat (Online code practice)
  • 用意された問題毎にコードをオンラインで提出(フォーム入力)し、その出力が正しいか(テストを通るか)を確認しながら学ぶスタイルのサイト。必ずしもブラウザ上で書きながらではなく、好きなエディタで書いたのを貼付けても良いですが。
  • 例えば Java だとJUnitと呼ばれるユニット・テスト(単体テスト。クラスやメソッドが正しく動くかを確認するためのコード)がありますが、CodingBatでは用意された問題には最初からテストも用意されており、動作結果が正しいかを確認できます。
  • オマケ要素としては英語の勉強にもなるかとw

P.S.
#ieryukyu_readingsを誰か他にも書かないかな〜 :)

(不定期コラム) 機械学習 #ieryukyu_readings

日曜日, 12月 29th, 2013

前回のコラムから始まった「何かしらの専門分野に関する読み物の紹介」第2段として機械学習を取り上げてみます。


紹介ページ: 機械学習 はじめよう

今回紹介するのは「機械学習」です。機械学習そのものに限らず、ニュアンスが近い設定としての「人工知能」や単に「学習」というキーワードはマンガ/アニメ等でも出てきますね。耳にする事が少なくないキーワードですが、実体としては良く分からないことが多いのではないかと思います。

人工知能学会における説明としては「観測センサーやその他の手段で収集されたデータの中から一貫性のある規則を見つけだそうとする研究です.数学の統計の分野と強い関連があります.また,機械学習はAIの他のほとんどの分野で利用されています.」と説明されていますが、事典ぐらいの説明に留まっているためあまり具体的ではなく、良く分からないかもしれませんね。

機械学習の実体を連載解説しているページが前述の「機械学習 はじめよう」です。例えば第1回の記事ではどういうところで活用されているか、基礎知識として何が必要か、機械学習におけるもの見方が概説されています。例えば応用例&必要な知識についてピックアップしてみると以下のように紹介されています。

出典: 第1回 機械学習 ことはじめ

[応用例について]

  • 物理,化学,生物,医学など様々な科学観測全般。センサーが拾えない情報の再現,解像度の向上。
  • ロボット。センサー読み取り,バランスを保つための予測等々,ロボットのソフトウェアは機械学習の固まり。
  • ゲーム制作や3D映画の撮影に使われているモーションキャプチャー。見えない場所にあるマーカーの位置の推測。
  • エレベータの動きの制御。混雑を可能な限り少なく,かつ省エネとなるように最適化。
  • 未知のコンピュータウイルスの検出。ウイルスかどうかの閾値の推論。
  • 検索結果のランキング。クエリーやコンテキストから求められている情報の推測。
  • コンテンツに合わせた広告の表示。

ここで,実はこれら応用例の大半について,機械学習が使われ始めたのは最近5年10年の話,というと意外に感じるのではないでしょうか?

[基礎知識について]
中でも線形代数(行列)と解析(微積分) は必須です。これらは本連載では説明しませんので,必要に応じて書籍などで別途勉強してください。参考になりそうなページを紹介します。

解説しているだけあって具体的な数式への落とし込み方やその解釈、随所で想定されている仮定などを一歩ずつ進めているため、全体のボリュームはかなりありますし、数式がしがし解いていくところも出て来るので本気で取り組めばかなり力がつくテキストでもあります。その積み重ねで人工知能分野における「機械学習」が具体的に何をしているのかも理解できるようになりますので、興味のある人は是非トライしてみてください!

P.S.
先輩らも後輩に向けてオススメ本/webページなり紹介して見ると良いのではなかろうか。という気持ちを込めてタイトルに「#ieryukyu_readings」を付けてみました。