オープンソースライセンスについてメモ
OSSのライセンスとは
ウィキペディアの説明
オープンソースライセンス(英: open source license)は、ソフトウェアやそのソースコード、ブループリント、設計書の利用、修正、頒布を認めるソフトウェアライセンスの総称である[1][2]。「広義のオープンソースソフトウェア」に課せられる「ソフトウェアライセンス」を指し、オープンソースのライセンス、フリーソフトウェアのライセンスを包括する。 オープンソースライセンスは、オープンソースソフトウェアの性質上、ソフトウェアやその二次著作物は元の作者でも制御しきれない形で頒布されるため、ソフトウェアは「有用であるとは思うが無保証である」のような但し書きを基本的な誓約として含んでいる[3]。ライセンスによっては、作者名や著作権名を表示する誓約(著作権表示条項)や、ソースコードを改変して再頒布する場合は同じライセンスで配布する誓約(コピーレフト条項)が存在する[4][5]。
オープンソースライセンスの要件
無保証
作者はソフトウェアが予期した動作をするか保証しないし、何らかの損害を被っても責任を負わない
著作権表示条項
ソースコードや文書に利用元の著作権を記載することを求めるもの。ライセンスによって何に記載しないといけないのかやエンドユーザーが閲覧可能かなどが決まっている。
コピーレフト条項
コピーレフトがあるライセンスを使う場合は、そのライセンスを引き継ぐか同等の利用条件を設定しなければいけない。代表的なのはGPL。
原作者特権条項
著作者が利用する分には適応されない事項。
主なライセンスの種類
MIT
BSD
Apache
GPL
参考
OSSのライセンスを理解する(「使用」と「利用」の違い、知っていますか?) - Qiita
初めてKaggleに参加したので振り返り【Cassavaコンペ】
Kaggleは前々からやってみたいと思いつつハードルの高さからなかなか手が出なかったのですが、CassavaコンペでKaggleデビューしたのでやったことや今後の課題など振り返りたいと思います。
自己紹介
社会人2年目で、SIerの先端技術部署で画像系の機械学習/深層学習の研究開発みたいなことをしています。自分でモデルを作ったりするわけではなく、既存の手法が実際に使えるのかやどのような実装になっているかの調査などを行っています。そのため機械学習/深層学習の基本的な知識はありますが、データ分析の経験はほぼないです。
なのでデータ分析の知識・経験を得るため、1からモデルを構築する練習としてKaggleを始めてみました。
結果
255/3900 位で銅メダルでした。
最終提出時点で934位でメダルのことを何も考えていなかったので、これがShake芸というやつか・・・と結構謎でした。ただメダルを獲得できたことは素直にうれしいです。
やったこと
基本的には小さめの実装から初めて徐々に機能を追加していく作戦。それでも最初の提出をするまでが一番時間がかかりました。 参考にpublic scoreがいくつになったのかも書いておきます。
- 「Kaggleのチュートリアル」を読む
Kaggleについて右も左もわからなかったので@currypurinさんの「Kaggleのチュートリアル」でサイトの使い方、Notebookの提出方法などを確認しました。この本がなかったら始められてないと思うので大感謝です。 - ベースのNotebookを作る(public score:0.7298)
今回は勉強もかねてPytorchで実装を行いました。最初はPytorchのチュートリアルや公開されているNotebookを頼りに、resnetで学習~推論を行うNotebookを作成しました。 - Efficientnetを試す(0.8806)
公開されているNotebookではEfficientnet-b4を使用しているものが多く、自分も使おうと思ったらどうしてもout of memoryになるのでEfficientnet-b3にしました。resnetと比べて15%ほどスコアが上がってモデル選び大事だなと。
timmをインストールしてEfficientnetを使っていたら、提出時にはネット接続ができないことを知らずエラーになり、どういうこっちゃとなりました。*1 - CVの実装(0.8898)
Scikit-learnを用いてk-fold CVを行いました。 - TTAをする(0.8935)
TTAが何なのか知らなかったのですが、推論時にaugmentationする手法でKaggleではおなじみらしいです。*2TTAの回数はいくつか試してみて最終的には6回にしました。 - アンサンブルをする(0.8971)
Resnext50_32x4dとEfficientnet-b3で学習を行って、各推論結果の加重平均を使用しました。
反省
- データ分析まで手が回らず工夫という工夫ができなかった
- 全体的に実装を優先してあまり理論を追えなかった
- 進めていくにつれてコードがごちゃごちゃになってしまった
今後の課題
感想
始めるまではKaggleはハードル高いなと思っていましたが、初心者向けのNotebookやDiscussionも多くとても楽しめました。いろいろな手法を試してスコアが上がるのを体験して"Kaggleはネトゲ"の意味が少しわかった気がします。
初めてのコンペでメダルを獲得できたのは素直にうれしかったですが、これといって自分で考えて試したことは少なかったので、次はデータ分析をしつつモデルの細部まで手を入れられるようになりたいです。
拙い文章でしたが最後まで読んでいただきありがとうございました。ご意見ご質問等ありましたらコメントかツイッターにいただけるとうれしいです!