Generated by All in One SEO v4.9.8, this is an llms.txt file, used by LLMs to index the site. # Shikoan's ML Blog 機械学習やディープラーニング、アルゴリズムについて書きます(By koshian2) ## Sitemaps - [XML Sitemap](https://blog.shikoan.com/sitemap.xml): Contains all public & indexable URLs for this website. ## 投稿 - [OpenAIのChatGPT APIの並列化を試す(LangChain)](https://blog.shikoan.com/langchain-parallel/) - 大量のデータをChatGPTで推論したいときに、並列化したらどの程度速くなったのかを実験してみました。振れ幅はかなり大きいですが、かなり並列化の効果はありました。 - [論文まとめ:TinyStories: How Small Can Language Models Be and Still Speak Coherent English?](https://blog.shikoan.com/tiny-stories/) - ・小規模な言語モデル(10M以下)で一貫性をある文章生成を可能にした研究 ・3-4歳児が理解できる単語に絞り、GPT-3.5/4から合成されたデータセットを生成。データの多様性を保つためにサンプリングを工夫 ・小規模モデルでもスケーリング則が確認できたほか、文法、創造性、一貫性の向上の仕方、モデル構造との関係を分析 - [EVA-CLIPをOpenCLIPで使う](https://blog.shikoan.com/eva-clip/) - EVA-CLIPがOpenCLIPから使えるようになっていたので試してみました。ViT-L/14相当のモデルでImageNetのゼロショット精度が80%越えでなかなかやばい結果となりました。 - [多変量分布のKLダイバージェンスの実装](https://blog.shikoan.com/multi-variable-kld/) - 分布間の差を定量化する手法として、KLダイバージェンスが機械学習では広く使われますが、多変量への拡張の実装面の話が必要になったので検証してみました。KDTreeを使った推定がノンパラへの拡張も期待できそうで便利でした。 - [論文まとめ:StableRep: Synthetic Images from Text-to-Image Models Make Strong Visual Representation Learners](https://blog.shikoan.com/stable-rep/) - ・Stable Diffusionの生成画像を使って、自己教師あり学習(SSL)をする研究 ・Guidance Scaleをコントロールし、1対多の生成画像でSSLするためのStableRepというフレームワークを構築 ・実画像で訓練するより実画像のほうが、下流タスクの転移効率は高いが、ゼロショットでは課題 - [自分用のAWSの資格試験のWeb問題集をClaude Codeで作る](https://blog.shikoan.com/aws-aip-quiz/) - いつもの問題演習サイトが使えなくなったので、Claude Codeで自分専用のAWS資格試験Web問題集を作ってみました。試験ガイドと公式ドキュメント、AWS Knowledge MCP Serverだけで問題生成からデプロイ、複数デバイス同期までできてしまったので、その流れとハマりどころをまとめます。 - [Embedding APIの決定性について](https://blog.shikoan.com/embedding_determinism/) - OpenAI等のEmbedding APIに潜む非決定性が、クラスタリング結果に及ぼす影響を各社モデルで比較検証しました。結果として一部のAPIは微小なベクトルのブレがクラスタ境界を大きく変えるため、完全な再現性を求める場合はローカルモデルやAWS Titanが有効であることが分かりました。 - [【12モデル比較】OpenAI・Gemini・ローカルLLMをファインチューニングしてGitHubライセンス判定](https://blog.shikoan.com/llm-license-detection/) - ModernBERTでの敗北から一転、OpenAI・Gemini・OSS LoRAを含む計12モデルのファインチューニング性能をGitHubライセンス判定タスクで徹底検証しました。APIモデルの圧倒的な精度とOSSモデルの持続可能性を天秤にかけ、コスト対効果や将来の廃止リスクまで踏まえた「今選ぶべき現実解」を明らかにします。 - [ModernBERTでGitHubのライセンスの自動判定をやりたかったが難しかった話](https://blog.shikoan.com/modenbert-license-detection/) - ModernBERTはOpenAIのファインチューニングに勝てるのか、GitHubライセンスの自動判定タスクで検証しました。 結果はOpenAIがF1値0.816で圧勝し、複雑な意味理解や推論を要するタスクではEncoderモデルの限界があることが明らかになりました。 - [LLMで「良い論文」を定義し、サーベイしてみる](https://blog.shikoan.com/llm-paper-evaluation/) - 引用数依存からの脱却——LLMによる「独創性」評価で、トップカンファレンスから真に読むべき論文を発掘する。 全2119件の論文をTier分類し、「革新性重視」と「トレンド重視」の戦略によるサーベイ品質の違いを検証しました。 - [Kubernetes学習メモ(4)](https://blog.shikoan.com/k8s-study-memo-4/) - Kubernetes APIの内部動作やRBACによる詳細な権限管理、ユーザー認証の仕組みをハンズオン形式で体系的に解説しています。 あわせて、ストレージの永続化、スケジューリングの制御、Network PolicyやHelmチャートの活用など、実運用に不可欠な応用トピックを網羅した学習メモです。 - [エージェント設計パターンによるRAG品質の改善](https://blog.shikoan.com/agent_rag_quality/) - ICCV2025採択論文2,113本を対象としたサーベイ生成実験により、エージェント設計パターンの違いが出力品質に決定的な差を生むことが明らかになりました。特に「オーケストレーターの排除」が逆に詳細なレポートを生むという直感に反する結果など、実用的なRAG構築のための5つの重要な設計指針を詳解します。 - [WindowsでClaude CodeにAWS公式のMCPを追加する方法](https://blog.shikoan.com/claude-code-aws-official-mcp-windows/) - Windows環境で、Claude CodeでユーザースコープでAWS公式のMCPを追加する方法をメモ。忘れがち+LinuxやmacOSの方法ばかり見るので。コマンドプロンプトから追加する。 - [AIエージェントのManusでBTO PCや投信を買ってみた](https://blog.shikoan.com/manus_bto/) - BTO PCの構成検討から投信選びまで、自律型エージェント「Manus」を使ってみたら面倒な調査タスクが劇的に効率化された。 一方で「エアフローの懸念」は正解でも「年利40%」のような嘘も混ざるため、エージェントの提示するロジックに対する高度な検証能力が問われている。 - [Kubernetes学習メモ(3)](https://blog.shikoan.com/k8s-study-memo-3/) - KCNA講座のSection 4に基づき、Docker Compose上のk3s環境を使ってPod・Deployment・Serviceなどの基本リソースをハンズオン形式で学習しました。 kubectlによるリソース作成やロールアウト管理に加え、ConfigMapやSecretsといった設定周りまで、Kubernetesの基礎的な操作手順を網羅的にまとめました。 - [コーディングエージェントの視座を上げさせるには](https://blog.shikoan.com/raising-conding-agent-view-point/) - 今のコーディングエージェントは「優秀だが指示待ちの新卒」であり、つきっきりで指導するコストに人間側が疲弊している現状があります。そんなAIに「つぎはぎコード」を卒業させ、テックリードの視座を強制するための具体的なプロンプト戦略をGeminiやChatGPTと議論しました。 - [WindowsのコマンドプロンプトからGitHubのReleaseに複数のファイルをアップロードする](https://blog.shikoan.com/github-release-upload-windows/) - WindowsのコマンドプロンプトとGitHub CLIを使って、GitHubのReleaseへ複数のファイルを一括でアップロードする方法を解説します。ローカルで生成したPDFなどの成果物をバージョン管理する際に便利な、タグ作成からアップロードまでの実用的な手順メモです。 - [日本語技術文書の翻訳に適切なコーディングエージェントはどれか](https://blog.shikoan.com/translate-tech-artical-using-coding-agent/) - Claude Code、Codex、Antigravityの3大コーディングエージェントを用いて日本語技術文書(Rubyリファレンス)を英訳し、その品質をLLMとGrammarlyで徹底比較しました。検証の結果、明示的な一貫性チェックを行うOpenAIの「Codex(GPT 5.2 High)」が、翻訳精度と流暢さの両面で最も優れたパフォーマンスを発揮しました。 - [Kubernetes学習メモ(2)](https://blog.shikoan.com/k8s-study-memo-2/) - Kubernetesを勉強したときのコマンドのメモです。流石に逃げられなくなった。随時追加します。 PodとServiceの連携と具体的なアプリのデプロイ。 - [Kubernetes学習メモ(1)](https://blog.shikoan.com/k8s-study-memo-1/) - Kubernetesを勉強したときのコマンドのメモです。流石に逃げられなくなった。随時追加します。 - [論文まとめ:NVIDIA Nemotron Nano V2 VL](https://blog.shikoan.com/nemotron-nano-v2-vl/) - NVIDIAの「Nemotron Nano V2 VL」は、12Bの軽量かつ高効率な視覚言語モデルです。MambaとTransformerのハイブリッド構成と、動画の静的領域を間引くEVS技術により、処理速度を大幅に向上させました。視覚学習で低下する論理思考力を「回復」させる独自の訓練工程が特徴で、OCRや動画理解で高い性能を発揮します。 - [論文まとめ:DINOv3](https://blog.shikoan.com/dinov3/) - DINOv3は、新技術「Gram anchoring」を導入することで、自己教師あり学習の大規模化に伴う「密な特徴マップ」の品質劣化という課題を解決したモデル。これにより、セマンティックセグメンテーションや3D深度推定などのタスクで最先端の性能を達成し、テキスト情報なしで画像の物理的構造を深く理解する能力を示した。 - [論文まとめ:Has GPT-5 Achieved Spatial Intelligence? An Empirical Study](https://blog.shikoan.com/gpt-5-spatial-intelligence/) - 空間知能を6つの中核能力に体系化し、8ベンチマークと標準化プロトコルでGPT-5を含む最先端MLLMを公平比較。GPT-5は総合的に向上したが、心的再構成・視点取得・変形/組立・包括的推論に弱点が残り、人間レベルには未達。 - [EC2のUbuntuのAMIをパラメーターストアから取得する](https://blog.shikoan.com/ubuntu-ami-parameter-store/) - UbuntuのAMI IDはSSMパラメーターストアのcanonical配下から取得可能だが、EKSやPro/最小構成などが混在し約1万件と膨大なため絞り込みに工夫が必要。Ubuntu 24.04の最新AMIは /aws/service/canonical/ubuntu/server/24.04/stable/current/{amd64|arm64}/hvm/ebs-gp3/ami-id を参照すればよく、Proは別料金。 - [楽天で電子書籍販売しようとして諦めた話](https://blog.shikoan.com/rakuten-publishing/) - ・楽天Koboライティングライフでは電子書籍出版時のロイヤリティ率が最大70%と高く、楽天市場の「お買い物マラソン」と連携することで購入促進の追い風もある。 ・しかし対応フォーマットはepub3限定でレイアウト崩れや厳しいコンテンツ審査が頻発し、場合によっては専用レイアウトで書き直すか、コストの高いパブファンセルフ経由のPOD出版を検討せざるを得なく、個人的には断念した。 - [論文まとめ:Generative Multimodal Pretraining with Discrete Diffusion Timestep Tokens](https://blog.shikoan.com/ddt_llama/) - 拡散モデルの各時間ステップを離散トークン(DDT)として扱うことで、画像情報を言語と同様の再帰構造で表現し、MLLMによる画像生成・編集・視覚理解能力を大幅に向上させる。 ImageNetで訓練したDDTトークナイザーとトランスフォーマーベースのMMDiTデコーダーを組み合わせ、GenEvalやDrawBenchなどのベンチマークで従来手法を上回る性能を実証。 - [論文まとめ:Efficient Track anything](https://blog.shikoan.com/efficient-tam/) - 新たなビデオセグメンテーションモデル「EfficientTAM」は、SAM 2の重い画像エンコーダーを軽量なViTに置き換え、メモリモジュールを効率化。SAM 2に匹敵する性能を維持しつつ計算量を大幅に削減し、モバイル端末での高速な動画オブジェクト追跡を可能にした。 - [論文まとめ:StarVector: Generating Scalable Vector Graphics Code from Images and Text](https://blog.shikoan.com/starvector/) - ・StarVectorはマルチモーダル大規模言語モデルを用い、画像やテキスト指示からSVGプリミティブを直接組み合わせたコンパクトで意味的に忠実なベクターグラフィックスコードを生成する手法を提案。 ・大規模SVG-Stackデータセットと新評価ベンチマークSVG-Bench(DinoScore等)を構築し、従来法と比較して定量・定性の両面で優れた性能を実証。 - [論文まとめ:When Do We Not Need Larger Vision Models?](https://blog.shikoan.com/s2-paper/) - モデルサイズを拡大する従来のアプローチに対し、入力画像の解像度を複数スケールで処理する「S2」手法を提案します。既存の小さなビジョンモデルでもパラメータ数を増やすことなく、多くのタスクで大規模モデルを凌駕する性能を達成できることを示した。 - [論文まとめ:Rewrite the Stars](https://blog.shikoan.com/rewrite-the-stars/) - ニューラルネットワークにおける要素ごとの積が多項式カーネルと同様に入力を高次元の非線形空間へ写像する理論的根拠を示し、スター演算を活用した効率的な「StarNet」を提案している。ImageNetを用いた実験で表現力と推論速度を両立する有効性が示され、既存の軽量モデルを上回る性能を達成した。 - [Wan: Open and Advanced Large-Scale Video Generative Models](https://blog.shikoan.com/wan/) - 独自の時空間VAE+Diffusion Transformerで14BモデルはSora級品質、1.3Bモデルは8GB VRAMで動作し性能と効率を両立。 Text‑to‑Videoに加え編集・画像→動画など8タスクを網羅し、コードとモデルを完全公開してオープンソースの壁を突破した。 - [論文まとめ:ULIP-2: Towards Scalable Multimodal Pre-training for 3D Understanding](https://blog.shikoan.com/ulip2/) - ULIP-2は、3D形状からレンダリングした画像と自動生成された多様な言語記述を組み合わせることで、従来を上回る精度とスケーラビリティを実現した。 ゼロショット3D分類や3Dキャプション生成で高い性能を示し、今後はシーンレベルへの応用が期待される。 - [ALBとPrivate Linkで複数のVPCにルーティング](https://blog.shikoan.com/alb-private-link-routing/) - ALBにVPCエンドポイント(ENI)をターゲットとして設定し、パスごとにNLB→EC2へトラフィックを振り分ける仕組みを構築しています。特にセキュリティグループの設定やTerraformの依存関係が要となり、正しい構成が確認できればログ一元化などのメリットを得られます。 - [整数計画法で不均衡データを均衡サンプリング(PuLP併用)](https://blog.shikoan.com/imbalance-selection-lp/) - 整数計画法(PuLP)を使えば小規模データでTrue/Falseの偏りをほぼ1:1にでき、最適解が得られます。一方、大規模データでは厳密解よりスピードを重視するグリーディ法が有効です。 - [論文まとめ:Diffusion Self-Distillation for Zero-Shot Customized Image Generation](https://blog.shikoan.com/dif_self_distil/) - LLMとVLMを活用してアイデンティティが一致する画像ペアデータを自動生成し、拡散モデルをファインチューニングする新手法を提案。これにより、追加学習の負担を抑えつつ、多様なコンテキストで参照画像の特性を保ったカスタマイズ画像が生成可能となった。 - [VPCのトラフィックミラーリングを試す](https://blog.shikoan.com/vpc-traffic-mirroring/) - ALB経由のWebサーバー通信をVPCのトラフィックミラーリング機能で複製し、別EC2でパケットをキャプチャする手順をTerraformで組み上げる方法を紹介。フィルターやセッション設定の具体例、キャプチャ結果の確認を通じて、効率的な通信解析とトラブルシューティングのポイントを解説する。 - [AWS Transit Gatewayでのマルチリージョン接続とRoute Analyzer活用](https://blog.shikoan.com/transit_gateway_peering_route_analyzer/) - Transit Gatewayを用いた複数VPC・複数リージョン間の接続構成と、その設定手順を解説。Network ManagerのRoute Analyzerを併用することで、ルートのデバッグやブラックホール範囲の確認が無料で簡易に行える点が特徴。 - [AWS Network ManagerのReachability Analyzerを試す](https://blog.shikoan.com/aws_network_manager/) - AWSのReachability Analyzerを使うと、NATゲートウェイやネットワークACLなどの通信経路を自動解析して接続障害の原因を即座に突き止められる。プライベートNATの誤設定やACLのブロックなど、セキュリティ設定の見落としも簡単に見つかり、Session Managerの接続トラブルも素早く解消できる。 - [ALBで送信IPアドレスベースのルーティングを試す](https://blog.shikoan.com/alb_ipbase_routing/) - ALBのリスナールールでソースIPを指定し、WAFを使わずに簡易的なアクセス制限を行える。Terraformにより特定IP向けの固定レスポンスルールを設定し、EC2インスタンスから動作を検証した。 - [LLMの推論システムの定式化(1):GPU以外のボトルネック](https://blog.shikoan.com/llm_inference_modeling_1/) - LLM推論時にGPU以外が占める遅延要因(SQSのバッチ処理やログ書き込み等)を実験的に検証し、オーバーヘッドは入力トークン数に対してほぼ線形に近似できることを示した。トークナイザーの負荷は軽微だが、SQSとDynamoDBへの書き込みが大きなボトルネックとなり、並列化や非同期化で大きく改善できる。 - [LLMの推論システムの定式化(2):価格理論の推論速度の統合](https://blog.shikoan.com/llm_inference_modeling_2/) - LLM推論にかかるGPUインスタンス料金やトークン生成速度、サービス提供単価などを数式で統合し、黒字化の条件を理論的に示した。実験結果では、GPU以外のボトルネックの影響は小さく、高い稼働率と高速なトークン生成が収益化を左右することが明らかになった。 - [AWS Network Firewallの導入とロギング](https://blog.shikoan.com/network_firewall_logging/) - Network FirewallはAZ単位の設計とパブリックIPの有無に注意しつつ、ステートレス・ステートフル両方のルールとCloudWatch Logsへのログ出力による高い可視化が可能です。一方で、NATゲートウェイとの組み合わせや運用コストにも留意が必要なため、実装前の十分な検討が推奨されます。 - [VPC間通信におけるPrivate Linkとクロスゾーン負荷分散の組み合わせ](https://blog.shikoan.com/private_link_cross_zone/) - クロスゾーン負荷分散が有効なNLBをVPCエンドポイントサービスと連携し、CIDR重複時でもインターネット経由せずに通信できる例をTerraformで構築します。プライベートホストゾーンやセキュリティグループ設定など、Provider・Consumerの両VPCで柔軟なアクセス制御を行う手順を詳細に示します。 - [GPT4.5でSVG生成を試す](https://blog.shikoan.com/gpt45-svg/) - OpenAIがGPT-4.5をリリースし、画像入出力やSVG生成などのマルチモーダル機能が大幅に強化された。その一方でモデルの大規模化に伴い高額な利用料金がネックになっている。 - [論文まとめ:Vision Grid Transformer for Document Layout Analysis+OSS紹介](https://blog.shikoan.com/vision-grid-transformer/) - Vision TransformerとGrid Transformerを組み合わせ、視覚・テキストの両面からマルチモーダル情報を効果的に活用する手法VGTを提案。多様な文書タイプと詳細なレイアウトカテゴリを含む新データセットD4LAを構築し、既存手法を上回る高精度を達成した。 - [論文まとめ:Mélange: Cost Efficient Large Language Model Serving by Exploiting GPU Heterogeneity](https://blog.shikoan.com/melange/) - Mélangeはリクエストサイズやレイテンシー要件を考慮し、複数種類のGPUを自動割り当てすることで最大77%のコスト削減を達成する。また、99.5%以上のSLO達成率を維持しながら、会話型から文書ベースまで多様なワークロードに柔軟に対応できる。 - [Auto Scaling Groupの「Stoppedウォームプール」を試す](https://blog.shikoan.com/asg-stopped-warmpool/) - Auto Scaling GroupのStopped状態のウォームプールを利用することで、初回セットアップを終えたインスタンスを停止したまま待機させ、必要時に素早く起動できる。Activeよりはやや遅いものの、GPUなどランニングコストが高いケースではコスト削減と初期化時間短縮に有効である。 - [ElastiCache RedisでEC2からPub/Subを試す(Redis OSS)](https://blog.shikoan.com/elasticache-redis-pubsub/) - EC2からTerraformで構築したRedisにPub/Subを行い、ミリ秒レベルの遅延を検証した。ValkeyではなくOSS版Redisを用いつつ、コードサンプルを通じてシンプルかつ高速なメッセージブローカーの構築手順を紹介する。 - [WAFログをCloudWatch Logsと連携して海外からの攻撃を自動検知して通知する](https://blog.shikoan.com/waf-log-notification/) - ALBにWAFを設定し、日本以外からのアクセスをブロックしてCloudWatch Logsへ送信、メトリックフィルターとSNSを使ったメール通知を実現。結果としてロシアからの大規模アクセスなどBot攻撃を可視化・アラートでき、運用監視の有用性が確認できた。 - [CloudFormationのメタデータでEC2ユーザーデータの制限を回避する](https://blog.shikoan.com/cloudformation-ec2-meta-data/) - CloudFormationのMetadata機能を使い、EC2にYAML形式で構成を適用することでユーザーデータの16KB制限を回避できる。Terraformと組み合わせてPyTorchを自動インストールする例を示し、保守性と再利用性を向上させる手法を紹介する。 - [AWS Configを使ってCloudFormationのドリフトを検知する](https://blog.shikoan.com/config-cloudformation-drift/) - AWS Configを活用し、CloudFormationスタックのドリフトを自動的に「非準拠」として検知・管理する手順を解説した記事です。ルール設定自体よりも、RecorderやIAMロールなど初期セットアップの複雑さが大きなポイントになっています。 - [S3バッチオペレーションで大量ファイルを一括変換する](https://blog.shikoan.com/s3_batch_operation/) - AWS S3バッチオペレーションを使い、Lambdaで数万の画像を一気にリサイズする実装手順を紹介。料金やIAMロールの設定、Terraformによるデプロイ手順など、実運用に役立つポイントを具体的に解説してみた。 - [ECRプッシュでFargateを自動更新するCodePipelineによるCI/CD](https://blog.shikoan.com/fargate-codedeploy/) - CodePipelineとCodeDeployのECSアクションプロバイダーを使い、ECRにイメージがプッシュされるたびにFargateを自動デプロイする仕組みを構築。Terraformのignore_changes設定でデプロイ後のドリフトも防ぎ、継続的な更新を安全かつスムーズに実行できる。 - [論文まとめ:Competitive Programming with Large Reasoning Models](https://blog.shikoan.com/lrm/) - 大規模言語モデル(LLM)を強化学習によって訓練し、競争プログラミングにおける高度な推論とコーディング能力を高めたOpenAIによるLRMの研究。特にo3モデルは、人間によるドメイン特化のテスト戦略を使わずとも、IOIやCodeForcesなどで上位レベルの成績を収める性能を示した。 - [AWS CDKの微妙だった点](https://blog.shikoan.com/no-aws-cdk/) - なんか流石に使ったこと無いのはあれでしょっていうんで、AWS CDKを30分ぐらい使ってみたけど思ったより微妙で、「使わなくていいや」ってなったのでその所感をメモしておく - [EventBridgeとLambdaによるFargateタスク状態通知](https://blog.shikoan.com/ecs-task-lambda/) - EventBridgeルールを用いてFargateタスクの起動・終了を検知し、Lambdaで状態変化のログ出力や追加処理を実行できるようにする方法を紹介。Terraformコードを利用して、ECSの状態監視から通知までを一括で構築する具体的な手順と実例を示した。 - [クロスアカウントEventBridgeでEC2の状態変更通知を実現する](https://blog.shikoan.com/ec2-status-check-crossaccount/) - Terraformで開発アカウントのEC2状態変更イベントを管理アカウントへ転送し、Lambdaでログを取得・通知する仕組みを構築。 カスタムイベントバスとIAMポリシーを組み合わせることで、安全かつ柔軟にマルチアカウントでのイベント管理を可能にしている。 - [ECRのクロスリージョン/クロスアカウントレプリケーションを試す](https://blog.shikoan.com/ecr-replication/) - 同一アカウント内でのECRクロスリージョン複製なら簡単だが、クロスアカウントではレジストリポリシーが必須でレポジトリポリシーとの混同に注意が必要。Terraformで実装する場合も“aws_ecr_repository_policy”と“aws_ecr_registry_policy”を正しく使い分けることで、エラーなく自動複製が可能になる。 - [S3の双方向クロスリージョンレプリケーション+S3 RTCを試す](https://blog.shikoan.com/s3-bidirectional-replication-with-rtc/) - S3のクロスリージョンレプリケーションにS3 Replication Time Controlを組み合わせることで、15分以内の非同期複製がほぼ保証される高速なレプリケーションを実現できる。Terraformを用いた設定例では、バージョニングやIAMロールなどの要点を押さえるだけで簡単に双方向のレプリケーションが構築可能だ。 - [Terraform+SAMによるLambdaのローカルテスト](https://blog.shikoan.com/sam_lambda_localtest/) - Terraform構成を維持しつつSAMでローカルテストを行い、動作確認後にTerraformで本番デプロイする流れを紹介。local_fileリソースを用いてSAMテンプレートを生成し、sam local invokeで検証してからフルリソースをデプロイする手順を試してみた。 - [Auto Scaling Groupのローリング更新を行う](https://blog.shikoan.com/auto-scaling-group-rolling-update/) - 起動テンプレートを更新しただけでは既存インスタンスが残り、Webサーバーの内容がすぐに反映されない場合がある。Auto Scaling Groupのローリング更新機能を使えば、段階的なインスタンス置き換えで最新バージョンを確実に適用できる。 - [CodePipelineでテストを並列実行する](https://blog.shikoan.com/codepipeline_parallel_test/) - Terraformを用いてCodePipelineを構築し、CodeBuildプロジェクトをrun_orderによって並列実行と依存関係のあるテストの後続実行を実現。GitHubリポジトリのソースコードを取り込み、複数のユニットテストを同時に走らせる構成例を紹介する。 - [CloudFormation StackSetsでOUのアカウントに対してリソースを自動デプロイ](https://blog.shikoan.com/cloudformation-stack-sets/) - Terraformを仲介し、CloudFormation StackSetsのSERVICE_MANAGEDモードを使うことで、OU配下の各アカウントへ自動的にS3バケットをデプロイする例。OUに新規アカウントを追加してもスタックが自動生成され、IAMロールの管理も不要となるため運用負荷が大幅に軽減される。 - [Lambdaのクロスアカウントクエリを試す](https://blog.shikoan.com/lambda-cross-account-query/) - AWS Organizationを利用し、TerraformでIAMロールを設定して親アカウントのLambdaから子アカウントの関数一覧を取得する手順を解説。AssumeRoleを介してクロスアカウントアクセスを実現し、安全にLambdaリソースの情報を取得できる構成を示す。 - [AWS OrganizationにSCPを適用してみる](https://blog.shikoan.com/organization-scp/) - AWS Organizationでのマルチアカウント環境にTerraformを組み合わせて、dev環境に対しRDSの操作をブロックするSCPを簡単に設定できる例を紹介。管理アカウントからの一元管理が可能で、Terraform destroyでいつでも制限を解除できる。 - [CloudFormationをTerraformで実行する](https://blog.shikoan.com/cloudformation-terraform/) - Terraformのaws_cloudformation_stackリソースを使い、SQSなどのCloudFormationスタックをapply/destroy一発で管理できるようにしてみた。日本語のYAMLもShift-JIS不要で扱えるため、CloudFormation特有の面倒を大幅に軽減できる。 - [TerraformとGitHubを活用したCodeDeploy導入](https://blog.shikoan.com/codedeploy-ec2/) - TerraformでAWSインフラを構築し、EC2上のhttpdをCodeDeployで動的に更新する手順を解説。GitHubリポジトリとCodePipelineを連携し、appspec.ymlや再起動スクリプトによる自動デプロイを実現してみる。 - [論文まとめ:BEN: Using Confidence-Guided Matting for Dichotomous Image Segmentation](https://blog.shikoan.com/ben/) - BENは、Confidenceベースでトリマップを自動生成し、不確実な領域にフォーカスすることで境界精度を高める。BaseモデルとRefinerモデルの連携により、従来手法を上回る二値画像セグメンテーション性能を達成している。 - [CloudFormationでSQSを1個デプロイするのがあまりに面倒で投げた話(アンチ記事注意)](https://blog.shikoan.com/cloudformation-sqs/) - CloudFormationを使ってみたが、SQSひとつ作るだけでもコマンドの長さやエンコード問題など作業工程が多く、非常に面倒だと感じた。AWS公式のメリットはあるが、現状ではTerraformの手軽さに軍配が上がるという結論だった。 - [Systems Manager Run Commandを試す](https://blog.shikoan.com/systems-manager-run-command/) - Terraformで複数のEC2インスタンスを作成し、同一タグを指定してSystems Manager Run Commandから一括シャットダウンする手順を紹介。コンソール上での操作やログ出力の可視化により、スクリプト実行・管理が容易になるメリットがある。 - [Fargate/ECSのスポットインスタンスのドレインを試す](https://blog.shikoan.com/fargate-ecs-spot/) - ECSにおけるFargate/ECS on EC2のスポットインスタンス運用を試してみる。Fargateスポットは簡単な設定で大幅なコスト削減を可能にしつつ、稼働停止もほとんど発生しなかった。一方、ECS on EC2のスポット運用はAmazon Linux 2023の不具合や二重プロビジョニングなどの問題があり、管理が複雑になりがちである。 - [Systems Manager Patch Managerを試す](https://blog.shikoan.com/systems-manager-patch-manager/) - Terraformを使い、AWS Systems Manager Patch Managerで定期的にUbuntu EC2インスタンスのパッケージ更新を自動化する手順を紹介しています。適用前後の“apt upgrade”結果を比較することで、Patch Managerが有効にアップデートを行っている様子を確認できます。 - [特定VPCだけからアクセス可能なS3を作る](https://blog.shikoan.com/vpcendpoint-bucket-policy/) - ゲートウェイ型VPCエンドポイントを利用し、バケットポリシーで特定VPCのみS3にアクセスできる構成例を解説。誤設定によるアクセス不能リスクと、バケットポリシーの保険設定の重要性も書きました。 - [CodeBuildでPython単体テストを自動化](https://blog.shikoan.com/codebuild_unit_test/) - TerraformでCodeBuildプロジェクトを構築し、非公開GitHubリポジトリからPythonのunittestを実行してビルド可否を判定する手順を紹介します。ソース認証にはPersonalAccessTokenを用い、ブランチ切り替えでテストの成功・失敗を簡単に確認します。 - [SQS→Lambdaでバッチ内の失敗メッセージだけ再試行する方法](https://blog.shikoan.com/sqs-lambda-batch-failures/) - バッチ内で失敗したメッセージのみ再実行したい場合、LambdaのイベントソースマッピングにReportBatchItemFailuresを指定し、失敗したメッセージIDを返せばよい。これにより不要な再試行を避けながら、確実にメッセージを処理する仕組みを構築できる。 - [CloudWatch埋め込みメトリクスフォーマットを試す](https://blog.shikoan.com/cloudwatch-embedded-metrics/) - aws-embedded-metricsを活用し、LambdaログをJSON形式で出力するだけでCloudWatchメトリクスが自動作成される。TerraformでIAMやスケジュール設定を行い、三角関数の値を定期的にメトリクスとして可視化してみた。 - [論文まとめ:Janus-Pro: Unified Multimodal Understanding and Generation with Data and Model Scaling](https://blog.shikoan.com/janus-pro/) - Janus-Proは理解と生成に別々のビジュアルエンコーダーを採用し、短いプロンプトでも安定した高品質画像を生成可能にした。大規模データとモデルサイズの拡張で、マルチモーダル理解と生成の両性能が大きく向上している - [Aurora Data APIで踏み台なしでSQLを実行する](https://blog.shikoan.com/aurora-data-api/) - Aurora Data APIを使えば、セキュリティグループの開放や踏み台サーバーが不要でHTTPS経由の直接クエリ実行が可能になります。Terraformやboto3との連携も容易で、特にPoCのときにシンプルかつセキュアに構築できる点が魅力です。 - [Auroraグローバルデータベースのマルチリージョンフェイルオーバーを試す](https://blog.shikoan.com/aurora-global-database/) - 複数リージョン間でAuroraのライター/リーダーの自動昇格やグローバルテーブルの切り替え動作をTerraformで構築し、フェイルオーバーを検証した。ボタン操作だけでプライマリの切り替えが完了し、障害時にもリアルタイムでデータが同期される仕組みにより、高い可用性を実現できることを確認した。 - [IAMロールのタグとLeadingKeysを用いたDynamoDBへのABAC実装](https://blog.shikoan.com/dynamodb-leadingkeys-abac/) - IAMロールに付与したタグとDynamoDBのパーティションキーをConditionで照合し、特定ロールのみアイテムの書き込みを許可する設定をTerraformで実装しています。タグによる属性ベースのアクセス制御により、プロジェクト単位で権限を分離できる仕組みが確認されました。 - [CloudFront+WAF+Secrets ManagerでALBへの直接アクセスを防ぐ方法](https://blog.shikoan.com/cloudfront_secrets_manager/) - CloudFrontからのみカスタムヘッダーを付与し、WAFがSecrets Managerの値と一致しないリクエストをブロックする構成です。ヘッダーをローテーションすることで、固定値の推測攻撃も防止できます。 - [API GatewayにKinesis Data StreamsをつけてLambdaのスロットリングを回避する](https://blog.shikoan.com/apigw-kinesis/) - API GatewayからKinesis Data Streamsへ直接データを流し込み、LambdaがポーリングしてDynamoDBへ書き込むことで大量リクエストでもスロットリングを回避しやすくなります。Terraformを使ったリソース構築例と実行結果を示し、Kinesisによるデータバッファリング効果を確認します。 - [VPCゲートウェイエンドポイントでS3への通信をオフロードする](https://blog.shikoan.com/vpc-gateway-endpoint/) - AWSのゲートウェイ型VPCエンドポイントを利用すれば、NATを通さずに無料でS3への通信を処理できる。Terraformでの設定例やテスト結果を通して、大容量ファイル送信時のコスト削減とプライベート環境の実現手順を解説する。 - [Route 53の多彩なルーティングとフェイルオーバー手法](https://blog.shikoan.com/route-53-failover/) - Amazon Route 53ではフェイルオーバーや複数回答、加重、レイテンシーなどのさまざまなルーティング機能を用いて高可用性を実現できます。NLBやGlobal Acceleratorとの組み合わせを含め、それぞれの特徴や実装方法を整理してみました。 - [Route 53を使ったマルチリージョンのフェイルオーバーを試す](https://blog.shikoan.com/multiregion-failover/) - Route 53のフェイルオーバールーティングを中心にALBやACMなどを複数リージョンで組み合わせ、プライマリ障害時にセカンダリへ切り替わる仕組みをTerraformで実装した事例。 リソース数こそ多めだが設定は比較的簡単。 - [Mountpoint for Amazon S3を使ってみる](https://blog.shikoan.com/mountpoint-for-amazon-s3/) - Mountpoint for Amazon S3を使えば、S3バケットをEC2に直接マウントし、Linuxコマンド感覚でファイルを操作できる。TerraformのコードでIAMロールやユーザーデータを設定するだけで、大容量データを簡単に扱える環境が整う。 - [DynamoDBの消費したキャパシティユニットを取得する](https://blog.shikoan.com/dynamodb-get-capacity-unit/) - DynamoDBにアイテムをPutItemする際、レスポンスのConsumedCapacityやCloudWatch Metricsから消費キャパシティユニットを取得する手順を紹介した。Terraformを使ったテーブル構築例も記載している。 - [Amazon Aurora Activity Streamを試す](https://blog.shikoan.com/aurora_activity_stream/) - AuroraのActivity StreamをKinesisとFirehose経由でS3に保存する仕組みをTerraformで構築しました。Aurora Serverless非対応やKMSキーの設定などの制約があるため、Provisionedインスタンスを活用して実装しています。 - [Aurora Searverlessのゼロキャパシティを試す](https://blog.shikoan.com/aurora_serverless_zero_capacity/) - Aurora Serverless v2の自動停止と再開を試し、ゼロキャパシティからの復帰が約15~18秒であることを確認します。ベクトルデータベースを用いた構成で、生じるレイテンシーとコスト削減効果を検証してみます。 - [CVPRの論文の被引用数の深読み(GitHub, arXiv, Sematic Scholar APIの活用)](https://blog.shikoan.com/cvpr-citation-analysis-2/) - CVPR2022・2023の論文を対象に、GitHubリポジトリやarXivの公開有無と被引用数の関係を調べた結果、リポジトリを公開している論文ほど被引用数が高い傾向が確認された。さらに、GitHubスター数と被引用数には明確な相関が見られ、コードの可視化や充実度が研究のインパクトに寄与している可能性が示唆された。 - [AWS Transfer FamilyでSFTPサーバーを立ててみた](https://blog.shikoan.com/aws-transfer-family-sftp/) - AWS Transfer Familyを利用して、S3と連携できるマネージドSFTPサーバーをTerraformで簡単に構築する手順を紹介する。料金やWinSCP接続などの注意点も含め、一連の設計・運用のポイントを解説する。 - [AWS BackupによるEC2のバックアップを試す](https://blog.shikoan.com/aws-backup-ec2/) - Terraformを使い、タグやIAMロールなどを設定してEC2インスタンスを自動バックアップし、定期的なスナップショットの管理や復元を簡単に行える。また不要になったバックアップやスナップショットも自動的に整理されるため、運用コストを抑えながら安全にリソースを管理できる。 - [AWS LambdaからS3の大容量ファイルを大量並列でダウンロードする検証](https://blog.shikoan.com/lambda_s3_parallel_download/) - LambdaでS3から1GBファイルを同時にダウンロードしても、同時実行数を500まで増やしても通信帯域はほと - [EC2 Image BuilderでAMIの自動作成を試してみる](https://blog.shikoan.com/ec2-image-builder/) - TerraformとYAMLファイルで定義したイメージレシピを用い、Amazon Linux 2023にPyTorchをインストールしたカスタムAMIを自動的にビルドする手順を解説。IAMロールやセキュリティグループの設定を整えれば、定期実行や最新AMIへの追従なども効率的に行える。 - [GitHub ActionsでPythonプログラムの実行](https://blog.shikoan.com/github-actions-python/) - GitHub Actionsを使い、requirements.txtで依存パッケージをインストールしてからPythonスクリプトを実行するワークフロー設定例。 無料枠があるため手軽に試すことが可能で、ネットワークアクセスも含む動作確認ができる。 - [Transit Gatewayを試す](https://blog.shikoan.com/transit-gateway/) - VPCピアリングと違い、Transit Gatewayを使えば複数のVPCを一元的に接続できるため、拡張性のある構成を簡単に実現できます。 各VPCのルートテーブルを設定するだけで、すべてのEC2が相互に通信できるようになるのを試してみました。 - [論文まとめ:Cosmos World Foundation Model Platform for Physical AI](https://blog.shikoan.com/cosmos/) - ・物理AIが学習データ不足で進化しづらい課題を解決するため、大規模な高品質動画をキュレーションし、テキスト生成でアノテーションを行うパイプラインを構築。 ・連続・離散両方の動画トークナイザー(Cosmos Tokenizer)を開発し、拡散モデルと自己回帰モデルからなる世界基盤モデル(WFM)を事前学習して物理シミュレーション能力を向上。 ・事後学習では、カメラ制御・ロボット操作・自動運転といった下流タスクに特化させることで、3D一貫性や物理的整合性を備えた動画生成や行動制御を実現。 - [VPCピアリングを試す](https://blog.shikoan.com/vpc_peering/) - Terraformを使ってプライベートサブネット同士のVPCピアリングを構築し、承認作業とルート設定を行うだけで相互通信を実現。セッションマネージャを使ったサーバ疎通確認やNATインスタンスを採用する手順など、必要なポイントを簡潔にまとめてみました。 - [API GatewayのリソースポリシーでWAFを使わずにIP制限](https://blog.shikoan.com/apigw-resource-policy/) - モック統合でもリソースポリシーを利用すれば、API Gateway単体で簡単にIP制限をかけられる。WAFに比べ高機能ではないものの、開発時の安全対策として十分に活用できる。 - [KMSに対して一時的なアクセス許可をもたせるKMS Grantを試す](https://blog.shikoan.com/kms-grant/) - KMS Grantを利用することで、キーのポリシーを変更せずに特定ロールへ復号権限を一時的に付与できる。TerraformやAWS CLIを使えば、ロールBのように従来権限が不足しているロールでも簡単にS3の暗号化オブジェクトを取得できるようになる。 - [ALBでSSLを終端し、EC2間をHTTPSで暗号化してみる](https://blog.shikoan.com/ssl-termination/) - ACM証明書を利用してALBでSSLを終端し、自己署名証明書を使ってALBからEC2までの通信もHTTPS化する手順をTerraformで解説。Route 53の独自ドメイン設定を組み合わせることで、ブラウザからのアクセスからEC2間まで全て暗号化された安全な構成を実現する。 - [Amazon SNSのメッセージ保護を試す](https://blog.shikoan.com/sns-message-protection/) - Terraformで作成したSNSトピックにデータ保護ポリシーを適用し、メールアドレスなどの個人情報を自動マスキングするテストをしてみました。結果として、メールアドレスはマスクされたが日本語の氏名には対応が弱いことがわかりました。 - [ECSコンテナ内へ手軽にSSH接続できるECS Execを試してみた](https://blog.shikoan.com/ecs-exec/) - FargateのタスクロールにSession Manager用のポリシーを付与し、enable_execute_commandを有効化するだけでコンテナ内部へのSSH接続が可能になる。AWS CLIからexecute-commandを実行すれば、タスクIDを指定して簡単にコンテナ内部をデバッグできる。 - [AppSyncによるGraphQLのAPIを試す](https://blog.shikoan.com/app-sync-graphql/) - TerraformでAppSyncを構築し、HTTPSとWebSocketを組み合わせてリアルタイム通信ができるGraphQL APIを作成する手順をまとめてみました。Pythonからミューテーションとサブスクリプションを行い、DynamoDBをデータソースにして簡単なリアルタイム連携を確認しました。 - [GPT-4oのファインチューニングで画像に対する「ボケて」を学習](https://blog.shikoan.com/gpt-finetuning-bokete/) - 画像とテキストの組み合わせで「ボケて」を学習させるため、GPT-4oをファインチューニングしてみた。じわじわくる系の面白さは学習できたものの、OpenAIのコンプライアンスが厳しく、多くのデータが除外されて過学習ぎみになる点が課題となった。 - [S3 Object Lambdaを試す](https://blog.shikoan.com/s3-object-lambda/) - TerraformとAWSのS3 Object Lambdaを連携させることで、S3バケットのオブジェクトを動的に加工しながら取得する仕組みを構築します。JSONデータのnameキーをLambdaでマスクする例を示し、追加のデータ複製なしにセキュアなデータ取得を実現する手順を解説します。 - [X-RayでLambdaに注釈やカスタムメタデータを付与する](https://blog.shikoan.com/x-ray-custom-metadata/) - Lambda関数にX-Rayを導入し、注釈やカスタムメタデータを付与して環境変数や実行時間を記録する方法をまとめています。boto3を使ったトレースログの取得コード例も含め、実際のJSONデータの中身を確認できることを紹介しています。 - [DockerベースLambdaとSnapStartで比較するコールドスタート最適化](https://blog.shikoan.com/lambda-snapstart/) - DockerベースのLambdaとソースベースのLambdaでのコールドスタートを比較し、SnapStartを使った短縮効果を詳しく検証してみました。モデルのサイズやCPU命令セットの制限などを踏まえ、ONNXとOpenVINOの使い分けや実装手順をまとめてみました。 - [PyTorchモデルをONNXやOpenVINOなどで最適化する実験](https://blog.shikoan.com/pytorch-model-optimize/) - Lambda上でのモデル推論で発生するコールドスタートを短縮するために、PyTorchモデルのさまざまな保存・最適化手法をEC2で比較した。結果、モデル変換が有力で、ONNXかOpenVINOの使い分けは、Intel/AMD, Armなどの「処理系が限定できるか」、「API・バッチ処理のユースケース」次第が大事なのではないかという示唆が得られた。 - [API Gatewayのモック統合でHTMLページを表示](https://blog.shikoan.com/apigw-mock-html/) - API GatewayだけでHTMLページをホストする方法を、Terraformのモック統合で実践する手順を紹介しています。 文字化けを防ぐために、Content-TypeヘッダーやHTML内のcharset指定を正しく設定するポイントも解説しています。 - [CodeBuildで作る、LambdaにEFSをマウントしてPyTorchをロード](https://blog.shikoan.com/lambda-efs-with-codebuild/) - Lambda上でPyTorchなどの大容量ライブラリを扱うため、EFSを活用して依存関係を配置する方法を解説します。CodeBuildを使ったライブラリのインストール自動化やTerraformでの構成管理により、Dockerを使わずに対応する事例を紹介します。 - [Terraformで最新のLinuxのAMIを取得するためのコード](https://blog.shikoan.com/terraform-latest-ami/) - Terraformを使ってAmazon Linux 2023とUbuntu 24.04の最新AMIを取得する際のフィルター設定例をまとめてみました。 - [CloudWatch MetricsによるEC2のディスク使用率の集計とDashboardの可視化を試す](https://blog.shikoan.com/cloudwatch-metrics-disk-usage/) - EC2でCloudWatch Agentをインストールし、ディスク使用率をCloudWatch Metricsに送信して可視化しました。Terraformでインフラをコード化し、標準メトリクスとあわせてダッシュボード上で一元的に監視できるように構築しています。 - [DynamoDBのScanIndexForwardで昇順/降順ソートでクエリ](https://blog.shikoan.com/dynamodb-scan-index-forward/) - DynamoDBでソートキーの昇順・降順を簡単に切り替えるために、ScanIndexForwardオプションを使う方法をTerraformとPythonのサンプルコードで検証してみました。 テーブル構造やインデックスを変えずに、ScanIndexForwardをTrue/Falseにするだけでソート順序が自在に切り替えられることが確認できました。 - [DynamoDBのグローバルテーブルを試す](https://blog.shikoan.com/dynamodb-global-table/) - Terraformを使ったDynamoDBグローバルテーブルで、複数リージョンへの自動同期を実装する方法を紹介します。例えば、東京とバージニア間でのリアルタイムなデータレプリケーションも簡単に実現できます。 - [論文まとめ:Visual Autoregressive Modeling: Scalable Image Generation via Next-Scale Prediction](https://blog.shikoan.com/var/) - ・従来のARベースの画像生成が抱える高い計算コストと双方向依存関係の欠如を、「次スケール予測」によって解決。 ・粗い解像度から徐々に高解像度へ生成するマルチスケール構造で、O(n^4)の計算量と拡散モデルに匹敵する画質を両立。 ・In/Out-paintingやクラス編集など多彩な応用でも、ゼロショット汎化能力とスケーリング則を実証。 - [LambdaのX-Rayを試す](https://blog.shikoan.com/lambda-xray/) - LambdaでOpenAI APIを呼び出しつつ、AWS X-RayによるトレーシングをTerraformで設定する方法を解説しています。レイヤーとしてOpenAIとX-Ray SDKを追加し、初期化からリクエストまで詳細なプロファイリングを行う手順をまとめました。 - [CognitoのユーザーをTerraformで事前定義する](https://blog.shikoan.com/cognito-predefined-user-by-terraform/) - TerraformでCognitoユーザーを登録し、初期パスワードを設定する方法を解説。 Pythonでパスワード変更とサインインを行う具体的な手順を紹介します。 - [CVPRの論文の被引用数を分析・予測してみた](https://blog.shikoan.com/cvpr-citation-analysis/) - CVPR2022・2023で採択された論文の被引用数を分析し、GitHubリポジトリやArxivでの公開が引用数に与える影響を調査しました。結果、これらの要因が引用数の増加に有意に寄与しており、Embeddingを用いたモデルで被引用数をある程度予測できることが示唆されました。 - [CloudWatch Logsのサブスクリプションフィルターを試す](https://blog.shikoan.com/cloudwatch-logs-subscription-filter/) - CloudWatch Logsで特定のログ出力時にLambda関数を自動起動する方法をTerraformで実装してみた。サブスクリプションフィルターの設定ポイントや実際のテスト手順を具体的に解説します。 - [API Gatewayのカナリアリリースを試す](https://blog.shikoan.com/apigw-canary/) - Terraformを使用してAPI Gatewayのカナリアリリースを実装し、ステージ変数を活用してトラフィックを動的に異なるLambda関数へルーティングする方法を解説します。これにより、新しいバージョンのコードを既存のステージに段階的にデプロイし、一部のトラフィックでテストを行うことが可能になります。 - [ECS FargateとX-Rayの連携を試す](https://blog.shikoan.com/ecs-fargate-xray/) - AWS X-RayとECS Fargateを連携し、Streamlitアプリのプロファイリングを試してみました。サイドカーコンテナとしてX-Rayを実装することで、コンテナ内の詳細なプロファイリングが可能となり、特に入れ子になったような関数のプロファイリングで便利です。 - [AWSのCodePipelineでCI/CDを試す](https://blog.shikoan.com/codepipeline/) - GitHubのメインブランチへのプッシュをトリガーとして、Terraformを使用してS3バケットにソースコードを自動的にコピーするAWS CodePipelineを構築しました。Code ConnectionsとCodeStar Connectionsの違いに伴うハマりどころや、GitHubとの連携設定の手順、さらに個人での利用を考慮したCodePipelineとGitHub Actionsの比較について解説します。 - [Amazon Data Lifecycle Managerによるバックアップ自動化を試す](https://blog.shikoan.com/amazon-dlm/) - Amazon Data Lifecycle Manager(DLM)を使用して、タグ付けしたEBSボリュームのスナップショットをTerraformで毎時自動取得する手順を解説します。 - [論文まとめ:Expanding Performance Boundaries of Open-Source Multimodal Models with Model, Data, and Test-Time Scaling](https://blog.shikoan.com/internvl25/) - ・オープンソースのマルチモーダル大規模言語モデル「InternVL 2.5」を公開し、商用モデルとの性能差を縮めることを目指した。 ・ビジョンエンコーダ、言語モデル、データセットサイズ、推論時間などのスケーリングが性能に与える影響を調査し、大規模なビジョンエンコーダが学習データへの依存を軽減することを発見した。 ・InternVL 2.5はMMMUベンチマークで70%を超える精度を達成し、高品質なデータと効果的なスケーリング戦略がオープンソースモデルの性能を大幅に向上させることを示した。 - [Amazon Athenaを試す](https://blog.shikoan.com/amazon-athena/) - S3に保存されたデータをSQLで集計できるAmazon Athenaを試してみました。データの整形からAthenaの設定、テーブル作成、クエリの実行、そして後片付けまでの手順をまとめています。 - [OpenSearchとOpenSearch Dashboardsによるダッシュボード作成(ローカルDocker)](https://blog.shikoan.com/opensearch-dashboards-docker/) - 本記事では、OpenSearchとOpenSearch Dashboardsを使用して、商品別の売上データを可視化する方法を紹介します。ダミーデータの作成から環境構築、データの登録、ダッシュボードの作成までの全体の流れを詳細に解説します。 - [一番簡単なCognitoの例を試す](https://blog.shikoan.com/first_cognito/) - 初めてAWS Cognitoを利用し、TerraformとPythonで認証の基本的な流れを試してみました。ユーザープールの作成から、ユーザー登録、確認、サインインまでの手順を解説します。 - [API Gatewayのモック統合を試す](https://blog.shikoan.com/apigw-mock-integration/) - AWSのAPI Gatewayの「モック統合」機能を初めて試してみました。Lambdaを用意せずに静的なレスポンスを返せるため、認証部分の検証やコストを抑えたAPIテストに便利……らしい。 - [CloudFront+OACによるS3のホームページホスト](https://blog.shikoan.com/cloudfront-oac-s3/) - Amazon S3の静的サイトホスティング機能を利用すると、ホームページをホストすることは可能ですが、HTTPS非対応やバケット全体の公開などのセキュリティリスクがあります。そこで、CloudFrontのOAC(Origin Access Control)を活用して、S3バケットを非公開にし、CloudFront経由のみで安全にコンテンツを配信する方法を試してみました。 - [S3のサーバー側の暗号化(SSE-KMS)の強制を試す](https://blog.shikoan.com/s3-enforce-kms/) - デフォルトのSSE-S3ではなく、特定のカスタマーマネージドキー(KMSキー)を使用してS3バケットでサーバーサイド暗号化を強制する方法を試してみた。Terraformとバケットポリシーを活用し、その特定のKMSキーによる暗号化のみを許可し、他の暗号化やキーを使用したアップロードを拒否する設定を行う。 - [DockerでAWS LambdaのレイヤーのZipファイルを一括生成する](https://blog.shikoan.com/lambda-layer-builder/) - 複数のrequirements.txtファイルから、AWS Lambda用のレイヤーZipファイルを自動生成します。Dockerを使用して一括で生成することで、レイヤーファイルの手作業作成や、手順の未記録といった問題を解決できます。 - [fck-natの通信負荷の耐性について調べてみた](https://blog.shikoan.com/fck-nat-bandwidth-test/) - AWSのマネージドNATゲートウェイの高額なコストの対策として、NATインスタンスが最近注目されています。本記事では、低コストで効果的なfck-natの性能を帯域面から検証していきます。 - [Terragruntにおけるモジュール間の依存関係の書き方](https://blog.shikoan.com/terragrunt-dependency/) - Terragruntを使うと別モジュール(例:VPC)から値を引き継げるが、やり方をよく忘れるのでメモ。VPCモジュールで定義したサブネットIDやCIDRの引き渡しなど応用範囲は広い。 - [YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information](https://blog.shikoan.com/yolov9/) - ・YOLOv9は、軽量モデルでの情報ボトルネック問題を解決するため、プログラム可能な勾配情報(PGI)を提案し、信頼性の高い勾配を生成することで深層の特徴量が重要な情報を保持。 ・PGIは訓練時のみ補助的な可逆ブランチを使用し、推論時のコスト増加なしにモデルの性能を向上させ、さらにCSPNetとELANを組み合わせた新しい軽量ネットワークアーキテクチャGELANを設計した。 ・提案手法はMS COCOデータセットでの物体検出タスクで評価され、既存のリアルタイム物体検出器と比較して優れた精度と効率性を示し、YOLOv9のMITライセンス版実装も公開された。 - [フォルダやファイルのタイムスタンプごとコピーするrobocopy](https://blog.shikoan.com/robocopy/) - HDDの入れ替えなどで、フォルダやファイルのタイムスタンプごとコピーしたいことがあったのでメモ。robocopy自体は特に別途インストールが必要なく、Windowsのコマンドプロンプトから使用できる。 - [論文まとめ:SOLAR 10.7B: Scaling Large Language Models with Simple yet Effective Depth Up-Scaling](https://blog.shikoan.com/depth_upscaling/) - ・大規模言語モデルを効率的にスケールアップするために、深さを増やすシンプルな手法「Depth Up-Scaling (DUS)」を提案。 ・ベースモデルの層を複製・削除して連結し、追加の事前学習で性能を回復させる2段階の手法で、複雑なフレームワークの変更を不要に。 ・提案手法で開発した「SOLAR 10.7B」は、既存モデルを上回る性能を示し、Hugging Faceのベンチマークで高評価を獲得。 - [クイックフォーマットしてしまったSDカードから動画を復活させるメモ](https://blog.shikoan.com/sd-card-restore/) - ・SONYのカメラのSDカードのディレクトリ構造を知らなくて、動画をバックアップしたと勘違いして、実は保存されてない状態で、SDカードをクイックフォーマットしてしまった ・結論的にはフリーソフトを使えばファイル復活できたが、あまりに面倒だったので試したことをメモ - [論文まとめ:LLM2CLIP: Powerful Language Model Unlock Richer Visual Representation](https://blog.shikoan.com/llm2-clip/) - ・LLMを活用し、CLIPのテキストエンコーダーに従来は困難だった長く複雑なキャプションの処理能力を学習させる研究 ・Caption Contrastive(CC)ファインチューニングを提案し、LLMが持っていない線形分離性を学習させる事前訓練を提案。より精度が出て効率的なCLIPのファインチューニングを提案。 ・画像テキスト検索タスクで従来のCLIPやEVAモデルを大幅に上回る性能を示し、LLMの知識を活用した視覚表現学習の有効性を実証。 - [HtmlRAG: HTML is Better Than Plain Text for Modeling Retrieved Knowledge in RAG Systems](https://blog.shikoan.com/html-rag/) - ・RAGシステムにおいて、検索された外部知識としてHTMLを直接利用し、プレーンテキストへの変換による構造情報や意味情報の損失を防ぐことで、LLMの性能を向上させる手法を提案。 ・HTMLの長さや冗長性の問題を解決するために、HTMLのクリーニングと2段階の刈り込みブロック(埋め込み、生成モデル)を組み合わせた効率的な処理方法を開発。 ・6つのQAデータセットで評価し、従来のプレーンテキストやMarkdownベースの方法と比較して、一貫して性能が向上することを示した。 - [論文まとめ:OmniGen: Unified Image Generation](https://blog.shikoan.com/omnigen-unified-image-generation/) - ・テキストと画像の両方を条件として受け入れ、多様な画像生成タスク(テキスト画像生成、画像編集、制御可能な生成など)を単一のモデルで実現する統一的な画像生成モデルOmniGen ・VAEとTransformerを主要コンポーネントとし、追加のエンコーダーを不要にしてシンプルかつユーザーフレンドリーな構造を実現*。さらに、多様なタスクを学習するために大規模で多様な画像生成データセット「X2I」構築。 ・GenEvalベンチマークでSD3に匹敵する性能を示し、EMU-EditデータセットではInstructPix2Pixを大きく上回る性能を達成し、多様なタスクにおいて高品質な画像生成能力を示した。 - [論文まとめ:SAM 2: Segment Anything in Images and Videos](https://blog.shikoan.com/sam2/) - ・画像と動画の両方でプロンプトを用いてあらゆる対象物をセグメンテーションできるモデル「SAM 2」。過去の情報を活用するストリーミングメモリー機構を導入。 ・新たに大規模な動画セグメンテーションデータセット「SA-V」を構築し、モデルの性能評価と公平性評価を行った。 ・評価の結果、SAM 2は既存の手法よりも高精度かつ高速であり、画像セグメンテーション能力も向上。 - [yum for Lambda(yumda)でAWS LambdaのレイヤーにPopplerを入れる](https://blog.shikoan.com/yumda-poppler/) - yum for Lambda(yumda)を使って、yum installで入れられるライブラリをLambdaのレイヤーとして導入してみました。これを使うと、LambdaのDockerイメージを使うことなく、日本語対応しつつPopplerのLambdaへの導入が可能になります。 - [論文まとめ:RAGChecker: A Fine-grained Framework for Diagnosing Retrieval-Augmented Generation](https://blog.shikoan.com/ragchecker/) - ・Retrieval-Augmented Generation (RAG) システムの評価を目的とした新しい詳細なフレームワークRAGChecker ・取得されたコンテキストと生成された応答をクレームレベルで評価し、検索モジュールと生成モジュールの両方を診断 ・GitHubで公開されており、評価データセットに基づいて人間の判断と高い相関を示すことが実証 - [論文まとめ:Florence-2: Advancing a Unified Representation for a Variety of Vision Tasks](https://blog.shikoan.com/florence-2/) - ・汎用的な視覚基盤モデル「Florence-2」。画像からピクセルレベルまで幅広いタスクに対応。 ・複数のエクスパートモデルから人工的にデータを生成する大規模データセット「FLD-5B」や、統一されたマルチタスク学習パラダイムを提案。 ・高いゼロショット性能を示し、ファインチューニングやダウンストリームタスクの評価でも優れた結果を達成。 - [Arxiv RAGから見る最近のLLM(2024/8)](https://blog.shikoan.com/arxiv-rag-recent-llm/) - Arxivの検索APIを使い自動的にサーベイを行うArxiv RAGを最近のLLMで調べてみました。Gemini 1.5が非常に健闘し、またClaude 3.5 Sonnetも面白い健闘をしていました。逆に、GPT-4oはこの手の長文タスクだとかなり力不足で、他のモデルと比べるとやや見劣りする結果となりました。 - [論文要約性能で見る最近のLLM(2024/7)](https://blog.shikoan.com/paper-summary-llm/) - ・論文要約の用途において、最近のLLMの性能とコストを評価し、どれが最適かを探る。 ・各モデルの価格と実測値を比較し、特にGPT-4o-mini、Gemini 1.5 Flash、Claude 3などのモデルについて詳しく調べる。 ・定量評価や言語の安定性、一貫性、生成文字数を考慮し、特にGPT-4o-miniとGemini 1.5 Flashのコストパフォーマンスが良いことを確認。 - [論文まとめ:LivePortrait: Efficient Portrait Animation with Stitching and Retargeting Control](https://blog.shikoan.com/live_portrait/) - ・静止画像から生き生きとした動画を生成するために、新しいポートレートアニメーション手法をLivePortraitを提案。 ・先行研究の拡散モデルベースの手法は高品質な生成が可能だが、計算コストが高く、細かな制御が難しい。暗黙的キーポイントベースの手法を改良し、GANベースで生成品質と制御性を向上。 ・大規模データセットの利用やネットワークアーキテクチャの改善、ランドマークガイド付き最適化を取り入れており、ステッチングモジュールと瞳孔・唇のリターゲティングモジュールを導入することで細かな制御も可能としている。 - [論文まとめ:Beyond Aesthetics: Cultural Competence in Text-to-Image Models](https://blog.shikoan.com/cube/) - ・テキストから画像生成するモデルの「文化的認識」と「文化的多様性」を評価するための新しい枠組みの研究 ・提案手法「CUBE」は、8カ国と3つの文化的概念に基づく文化的能力を評価し、大規模な文化的アーティファクトデータセット「CUBE-CSpace」と「CUBE-1K」を構築して、質加重Vendiスコアを用いた文化的多様性評価手法を開発 ・既存モデルには文化的認識と多様性に関する課題があることが示され、今後はより多様な文化背景を考慮した評価と、文化的能力を向上させるモデル開発が必要 - [論文まとめ:Unveiling Encoder-Free Vision-Language Models](https://blog.shikoan.com/eve/) - ・解像度や縦横比の制限があるビジョンエンコーダを用いずに、視覚と言語を統合的に処理できるVLMを開発する研究。パッチ埋め込み層(PEL)とパッチアラインメントレイヤー(PAL)を導入し、LLM主導の事前アラインメントを含む三段階の学習プロセスを提案。 ・公開データセットのみを用いて開発されたEYE-7Bモデルが、既存のエンコーダ型VLMと同等以上の性能を達成し、エンコーダフリーVLMであるFuyu-8Bを大きく上回った。 ・言語能力の低下が見られるため、言語データの混合学習などを検討する必要があり、エンコーダ型VLMとの性能差をさらに縮小する余地がある。 - [論文まとめ:MixEval: Deriving Wisdom of the Crowd from LLM Benchmark Mixtures](https://blog.shikoan.com/mixeval/) - ・LLM評価のクエリ、採点、一般化バイアスに対し、効率的で公平な基準ベンチマークと実世界のクエリを組み合わせる「MixEval」を提案 ・MixEvalはウェブからユーザクエリを検出し、GPT-4や既存ベンチマークと組み合わせて効率的な評価を行い、クエリを分類、フィルタリングして評価 ・MixEvalは従来を上回る相関と効率性を示し、コスト削減にも成功、動的更新メカニズムによりモデルスコアの安定性を実現 - [論文まとめ:Human Preference Score v2: A Solid Benchmark for Evaluating Human Preferences of Text-to-Image Synthesis](https://blog.shikoan.com/hpsv2/) - ・テキストから生成された画像の質を正確に評価する新しい指標HPS v2を開発 ・専用のアノテーションチームで大規模なデータセットHPD v2を構築 ・HPS v2は、HPD v2を用いて幅広いモデルの生成画像を正確に評価できるよう訓練され、既存指標よりも一般化性が高い。 - [論文まとめ:Style Aligned Image Generation via Shared Attention](https://blog.shikoan.com/style-aligned/) - ・Text-to-Image生成モデルで画像のスタイル一貫性を保ちながら多様なコンテンツを生成することに焦点を当てた研究 ・提案手法は、自己注意機構にわずかな変更を加え、適応的正規化を用いて計算コストを削減し、高品質な画像を生成。 ・任意のT2Iモデルに応用可能であり、今後は生成画像の形状や外観の一貫性向上を目指す。 - [Python(requests)でDiscordにWebhook経由で複数の画像+メッセージ投稿](https://blog.shikoan.com/requests_discord/) - DiscordにWebhook経由で、複数の画像+メッセージを投稿する例を紹介します。Python+requestsでやったらかなりハマったのでメモがてらに。 - [Arxiv RAGによる論文サーベイの自動生成](https://blog.shikoan.com/arxiv_rag/) - 複数のLLM(GPT/Claude3)とArxivの検索APIをRAGで統合し、論文サーベイの自動生成を作りました。検索結果の前処理や、サーベイ特有のプロンプトエンジニアリングやソートが重要で、最適化手法として古くからある巡回セールスマン問題(TSP)が有効に機能しました。また、生成部分ではGPTよりClaude3の明確な有効性を確認できました。 - [[Terraform]HTTPタイプのAPI Gatewayをデプロイする](https://blog.shikoan.com/http-api-gateway/) - API Gatewayには2種類あって、RESTタイプとHTTPタイプがあります。RESTはよく使っていたのですが、HTTPタイプをTerraformでどう作るのかわからなかったので調べました。取り回しはあんまり変わらないのですが、サービス間の統合がRESTと結構違うのでそこが注意が必要そうです。 - [[Terraform]API Gateway+WAFで短期間の同一IPからのアクセスをブロックする](https://blog.shikoan.com/api-gateway-waf/) - API Gateway+WAFで、短時間の同一IPからのアクセスをブロックするレートベースのルールを試してみました。Terraformだと数個リソースを追加するだけでよく、手軽にできます。この例では、スロットリングとして動作します。 - [[Terraform]CloudFront+Lambda@EdgeでLambdaのみで静的ページをホストする](https://blog.shikoan.com/cloudfront_lambda_edge/) - CloudFront+Lambda@Edgeで割と簡単に静的ページをホストできるって前に読んだので、気になっていたパターン。ChatGPTに聞かせてTerraformで作って動かしてみた。 - [[Terraform]CloudFront+S3でホームページを作る](https://blog.shikoan.com/terraform-cloudfront-s3/) - CloudFrontちゃんと使ったことなかったので勉強用に、ChatGPTにTerraformを生成して、CloudFront+S3でホームページを作ってみました。 - [DiscordのbotをTerraform+API Gateway+Lambda(Python)で動かす (2):応用編 Followup Messageによる長時間推論](https://blog.shikoan.com/discord-bot-lambda-2/) - DiscordのbotをTerraform+AWSでサーバーレスで作る話の続き。DiscordのInterctionは3秒位内に返さないといけないという強い制約がある一方で、Followupのメッセージを入れればタイムアウトは15分まで延長できます。Followup周りをネイティブPythonでどう扱うかという話がメインです。 - [DiscordのbotをTerraform+API Gateway+Lambda(Python)で動かす (1):基本編](https://blog.shikoan.com/discord-bot-lambda-1/) - DiscordのInterction EndpointをAPI Gateway+Lambdaで実装し、Terraformでデプロイしてみます。LambdaはPythonベースで。Discordとの疎通の部分にどころがあります。基本といいつつ、TerraformがややややこしくなったがAPI Gatewayの部分なんで、その他はわかってしまえば単純です。 - [DiscordのbotコマンドをTerraformで管理する](https://blog.shikoan.com/discord-command-terraform/) - DiscordのbotのコマンドをTerraformから管理できるProvider(discord-interactions Provider)を見つけたので、試してみました。コマンドをIaCの管理下におけて、デプロイや削除がやりやすくなると思われます。また、AWSとまたいだ認証情報の受け渡しも可能です。 - [論文まとめ:HiQA: A Hierarchical Contextual Augmentation RAG for Massive Documents QA](https://blog.shikoan.com/hiqa/) - ・大量の区別できない図表を含む文書に対するRAG「HiQA」を提唱した論文 ・カスケードメタデータを文章検索メカニズムを統合し、ドキュメント間の比較を可能にし、単純なRAGより大きく精度を向上させた ・評価データセットとしてMasQAを作成し、公開されている。 - [論文まとめ:Design2Code: How Far Are We From Automating Front-End Engineering?](https://blog.shikoan.com/design2-code/) - ・マルチモーダルLLM(GPT-4V、Gemini)を使い、ウェブサイトのスクリーンショットを入力とし、HTML+CSSのコードを自動生成するタスクの研究。 ・自動評価と評価データセットの開発が行われ、既存のデータセットと比較しながら、HTMLタグの仕様、ドメイン、複雑さのレベルを定量的・定性的に示すベンチマークを提供。 ・プロンプトベースのゼロショット生成・評価も行われ、テキスト拡張プロンプト法が最も有効で、自己修正プロンプトがGPT-4Vで効果を示した。ローカルマルチモーダルLLMをファインチューニングして検証を実施。 - [論文まとめ:Genie: Generative Interactive Environments](https://blog.shikoan.com/genie/) - ・DeepMindが開発した、ゲームのように入力を受け付ける動画生成モデル(対話的生成環境) ・2Dゲーム大規模動画データから訓練、時空間Transformerを使用し、潜在的行動をモデリング ・先行研究と異なり、ドメイン固有の訓練が不要な基盤的世界モデル。ロボットのエージェントの基盤モデルとして期待 - [CLIPに対していろいろ条件を変えてLoRAを訓練してみた(PyTorch Lightning)](https://blog.shikoan.com/pytorch-light-lora/) - CLIPに対してLoRAを適用して、いろいろ条件を変えて画像分類モデルを訓練した。Few-shotやパラメーター数に対しては従来のファインチューニングと同じだが、rとαとバランスを考慮する必要がある。LoRAだとゼロショット性を維持できるため、In-domainとOut-of-domainのトレードオフを示すことができた。 - [transformersのTrainerでCLIPにLoRAを適用して訓練する](https://blog.shikoan.com/transformers-trainer-clip-lora/) - HuggingFaceの提供しているpeftを使うと、LoRAが簡単に訓練できますが、transformersのTrainerベースでの訓練であり、画像分類でどうやるのかがよくわかりませんでした。とりあえず動かすことができたので自分用メモにおいておきます。 - [論文まとめ:ConTextual: Evaluating Context-Sensitive Text-Rich Visual Reasoning in Large Multimodal Models](https://blog.shikoan.com/contextual-paper/) - ・ MLLMに対し、テキストと画像の相互作用を評価するデータセット「ConTextual」を構築 ・ 従来のVQAデータはOCRに寄っていたが、Webサイトや時計の読解といった実応用よりのタスク ・ データセット構築が詳細に示されており、GPT-4V/Gemini/OSSや人間のベンチマークも提示。LLMによる自動評価も検証 - [LangChainのRecursiveCharacterTextSplitterの動作がおかしいので自作する](https://blog.shikoan.com/custom-recursive-splitter/) - LangChainのRecursiveCharacterTextSplitter.from_tiktoken_encoderの動作が思ってたのと違ったので、それに相当するものを自作してみました。とてつもなく大きいトークン数のチャンクが出てきたときに有効かもしれません。 - [GeminiのアプリケーションとGeminiのAPIは全然出力が違うので気をつけましょうという話](https://blog.shikoan.com/gemini-api-difference/) - Gemini AdvancedやGeminiのようなアプリケーションとしてのGeminiと、Google Cloud上のモデル/LLMとしてのGeminiは全く異なる出力をします。最初アプリケーション側を出力がモデル本来の性能と錯覚したので、検証の際の注意喚起として書いておきます。 - [Vertex AIからGeminiのAPIを呼び出す](https://blog.shikoan.com/vertex-ai-gemini/) - Google Cloudのサービスアカウントがある場合に、Vertex AIからGeminiのAPIをサクッと動かす方法のメモ。とりあえず試したいときに。 - [論文まとめ:COLE: A Hierarchical Generation Framework for Graphic Design](https://blog.shikoan.com/cole/) - ・ユーザーの指示から、編集可能で階層的なグラフィックデザイン画像を生成する新システム「COLE」の研究 ・ユーザの意図を理解し、設計に関連する重要なデータをJSON形式で保持、これを基に視覚要素の生成とタイポグラフィ属性を作成 ・生成したデザインに対する自己評価によるフィードバックを経て最終的なデザイン品質を向上させる - [論文まとめ:Principled Instructions Are All You Need for Questioning LLaMA-1/2, GPT-3.5/4](https://blog.shikoan.com/principled_instructions/) - ・プロンプトエンジニアリングのためのTipsを原則として類型化 ・ATLASというベンチマークを構築し、LLMの生成した、記述タスクのブースト、分類タスクの正確性を人間が評価 ・ベンチマークを上昇させるための、プロンプトエンジニアリングの原則を提唱 - [LLMに検索エンジンの検索ワードを生成させる(AI王データセット)](https://blog.shikoan.com/llm-search-engine-words/) - 検索エンジンの結果を利用してRAGをするために、LLMを使って検索ワードを自動生成させたい。AI王データセットの中から、GPTの知識だけでは解けない問題を選択し、定量評価することで、プロンプトエンジニアリングやハイパーパラメータの選択がやりやすくなった。 - [論文まとめ:WebVoyager: Building an End-to-End Web Agent with Large Multimodal Models](https://blog.shikoan.com/web-voyager/) - ・ブラウザをLLMが操作してタスク解決を行う、汎用ウェブエージェントWeb Voyagerについての研究 ・従来はHTMLなどユニモーダルだった部分を、GPT-4Vを使いマルチモーダルに拡張し、ウェブサイトのUXを反映。評価のプロトコルも作成 ・マルチモーダル化したらタスクの成功率が大幅に向上した一方で、現在の限界も議論している - [OpenAIの新しいEmbeddingAPIをlivedoorニュースコーパスで試す](https://blog.shikoan.com/openai-new-embedding/) - OpenAIの新しいEmbedding APIを試してみました。Embedding APIをテキスト分類のバックボーンとして使用し、ロジスティック回帰を行います。Livedoorニュースコーパスにおいて、V3モデルの一貫した有効性が示せました。 - [GPT-3.5/4にabc/EQIDENの問題を解かせてみた(AI王データセット)](https://blog.shikoan.com/ai-ou-gpt/) - RAGのための評価データセットの構築として「GPTの素の知識で解けない問題のデータセット」というのが必要性を増している。RAGの性能評価(特にBingチャットのような検索エンジンのRAG)の場合、(1)外部知識の必要性、(2)ステートレス性において、競技クイズの問題が有効であるということが示唆される。 - [論文まとめ:Gemini: A Family of Highly Capable Multimodal Models](https://blog.shikoan.com/gemini/) - ・Googleが開発したマルチモーダルLLMの「Gemini」の論文 ・文章、音声、映像、画像をすべて1個のTransformerに入れて、テキストと画像を生成可能なモデル ・Ultra、Pro、Nanoのサイズがあり、UltraはGPT-4を一部超えている。Nanoはモバイル特化。UltraはTPUを使い大規模な訓練を実施 - [S3 Express One Zoneを使ったときのメモ](https://blog.shikoan.com/s3-express-one-zone/) - re:Invent2023で発表された、AWSのS3の新機能である「S3 Express One Zone」を使って、定期削除をしようとしたら結構ハマったのでメモを書いておきます。 - [GradioとStreamlitのアプリをnginxでサブディレクトリにルーティングさせる](https://blog.shikoan.com/gradio-streamlit-nginx/) - 1つのドメイン直下にサブディレクトリを作り、複数のGradio、Streamlitのアプリを配置するパターンをコンテナベースで実装してみます。nginxによるリバースプロキシを使います。 - [論文まとめ:Weak to Strong Generalization: Eliciting Strong Capabilities with Weak SUPERVISION](https://blog.shikoan.com/weak_to_strong/) - ・弱いモデルで強いモデルを訓練し汎化するスーパーアラインメントの研究 ・GPT-4/GPT3.5を生徒、GPT-2レベルを教師として訓練。NLPタスクでは汎化が容易だったが、人間の嗜好を学習するリワードモデルでは難しく、RLHFのスケーラビリティが課題 ・スーパーアラインメントを今後実証研究進められることの示唆を提示 - [PDFMinerを並列化して読み込みを高速化する](https://blog.shikoan.com/pdfminer-parallel/) - PDFMinerというMITライセンスで利用できる、PythonベースのPDFパーサーを並列化する方法を紹介します。このライブラリ、パースが遅いというデメリットがあるのですが、並列化が効果的な場合もあります。 - [論文まとめ:Stable Video Diffusion: Scaling Latent Video Diffusion Models to Large Datasets](https://blog.shikoan.com/stable-video-diffusion/) - ・Stablity AIが公開した動画生成の研究「Stable Video Diffusion」 ・オプティカルフローやシーン変化の検出、キャプション生成やLLMを活用した、高解像度でなめらかな動画生のための前処理戦略が大きな貢献 ・前処理を良くすることで、動画生成の品質が良くなったほか、3次元生成への強い転移性を実証 - [日本語翻訳で比較するLLMと翻訳API](https://blog.shikoan.com/llm-translate/) - 英語を日本語に翻訳するというタスクから、Amazon TranslateやDeepLのような翻訳APIと、GPTやClaudeのようなLLMを比較します。BLEUによる翻訳性能と、コストによる両面から検討します。 - [論文まとめ:Video-LLaVA: Learning United Visual Representation by Alignment Before Projection](https://blog.shikoan.com/video-llava/) - ・動画静止画両方に対応しているVision & Language Modelの研究 ・動画と静止画のアラインメントを精度向上につなげているのが特徴で、CLIPの言語空間を媒介にして動画と静止画のアラインメントをとる ・動画と静止画を共同で訓練することでさらに精度を上げ、2023年11月時点で既存研究ではSoTA - [MoviePyで一定間隔でフレームを抽出する](https://blog.shikoan.com/moviepy-extract-frames/) - MoviePyを使い、動画から一定間隔でフレームを抽出する方法を見ていきます。iter_framesを使うとできます。動画編集と組み合わせたいときにこの方法は便利です。 - [論文まとめ:LCM-LoRA: A Universal Stable-Diffusion Acceleration Module](https://blog.shikoan.com/lcm-lora/) - ・Consistency modelsの派生系である、Latent Consistency Models(LCM)を使い推論高速化する研究 ・従来のLoRAはカスタマイズしかできなかったが、ここに推論高速化の要素を加えることに成功 ・従来よりも少ないステップ数で拡散モデルの生成が可能。任意のモデルに適用可能 - [OpenAI DevDayの発表まとめ(2023年11月)](https://blog.shikoan.com/opneai-devday-202311/) - 2023/11/6(日本時間2022/11/7の3時から)に発表されたOpenAI DevDayの内容をまとめました - [論文まとめ:Improving Image Generation with Better Captions](https://blog.shikoan.com/dalle-3/) - ・OpenAIの画像生成モデル「DALLE-3」の技術仕様の論文 ・技術的な工夫は、T2Iの学習に使うキャプションをほぼ(95%)合成ベースで行うもの。人間のキャプションは背景の詳細や常識的な関係を無視するため、合成のほうが良い ・画像生成モデルの学習で、機械的に作られた詳細なキャプションを使うことを評価したのが貢献 - [MiniGPT-4をAutoGPTQ/BitsAndBytesで量子化時の生成文章の定量評価](https://blog.shikoan.com/minigpt4-autogptq-quality/) - LLMをデプロイする際に、LLM部分の量子化が必要になることが多いです。MiniGPT4のようなVLMに焦点をあて、AutoGPTQとBitsAndBytesという2つの量子化フレームワークに対し、生成文章の定量評価を行います。「評価指標はそもそも信頼できるのか」という問いから入るので、かなり注意深い検討が必要です。 - [論文まとめ:SDXL: Improving Latent Diffusion Models for High-Resolution Image Synthesis](https://blog.shikoan.com/sdxl/) - ・Stable Diffusionの改良「SDXL」の論文 ・全般的にモデルを重くし、U-Netが3倍、Text EncoderがCLIPを2つアンサンブル ・解像度に対する条件付(Encoding)を導入し、ランダムクロップや訓練画像の解像度の低さの問題に対処 ・Refinerを追加し、局所的な粗さを改良 - [Streamlitで動的に作ったコンテンツをダウンロードする方法](https://blog.shikoan.com/streamlit-download/) - Streamlitでメソッドなどで作った動的なデータについて、ボタンをクリックするとダウンロードするような処理を実装します。これは2023年10月現在のStreamlitでは不可能ですが、ダウンロードしたいコンテンツをbase64でエンコードすることでこれを解決します。 - [論文まとめ:RTMPose: Real-Time Multi-Person Pose Estimation based on MMPose](https://blog.shikoan.com/rtmpose/) - ・MMPoseベースのポーズ推定の研究。様々なモデルが公開されている ・トップダウンのアプローチで、改良したSimCCを使い、xy座標単位での分類問題を解きローカリゼーションとする ・学習戦略の改良で大きく精度を改善し、モバイル環境でもリアルタイム可能 - [asyncioを使ったLangChain+Streamlitでの非同期処理:複数のストリーミングチャットを同時に動かす](https://blog.shikoan.com/streamlit-asyncio/) - asyncioを使い、StreamlitのUIを非同期化することを目指します。非同期化することで、複数のストリーミングチャットを同時に動かすことが可能になります。LangChainとの統合ではUIの反映をどのコンテクストで行うかが課題になりますが、Chain間の結合など面白い活用法も期待できる実践的な内容です。 - [Streamlit+LangChainでストリーミング対応しつつPDFに複数の質問をさせる](https://blog.shikoan.com/streamlit-langchain/) - Streamlit+LangChainでChatGPTのストリーミング表示を実装してみます。PDFの検索ベース - [論文まとめ:Generating Images with Multimodal Language Models](https://blog.shikoan.com/gill/) - ・マルチモーダルLLMと画像生成モデルに、線形レイヤーをくっつけてプロンプトチューニングと蒸留学習のアプローチを取り入れた ・先行研究のFROMAGeだと画像検索しかできなかったが、画像生成と検索を両方対応しているのが新規性 ・対話や画像の枚数が多くなったときに、より一貫性のある画像生成ができるようになった - [MiniGPT4をAutoGPTQ/BitsAndBytesで量子化してAWS上でのスループットを検証する](https://blog.shikoan.com/minigpt4_quant_throughput/) - LLMをデプロイする際に、LLM部分の量子化が必要になることが多いです。MiniGPT4のようなVision & Language(マルチモーダル)なLLMに焦点をあて、AutoGPTQとBitsAndBytesという2つの量子化フレームワークに対し、文章生成速度の観点から比較しました。AWSのEC2のGPUインスタンス上で検証します。 - [論文まとめ:Visual Programming: Compositional visual reasoning without training](https://blog.shikoan.com/visual_programming/) - ・複数のツールを組み合わせて、Questionベースから実行するための画像処理のパイプラインをゼロショットで作るフレームワーク ・Instructに対応するパイプラインをGPT3にIncontext Learningさせる ・モデルの訓練なしで画像処理のパイプラインが構築可能。CVPR 2023 BestPaper - [論文まとめ:Investigating Emergent Goal-Like Behaviour in Large Language Models Using Experimental Economics](https://blog.shikoan.com/llm_dilemma/) - ・LLM(GPT-3.5)を使い、実験経済学のアプローチから、非ゼロサムゲームにおける協力行動を調べた研究 ・囚人のジレンマを模倣し、利他的・利己的といった性格を規定するプロンプトと、協力行動と関係を調べる ・表面的な協力はとれたが、社会的ジレンマに対応するニュアンスのある行動方針に変換することには、まだ限界があった - [LLaMA.cpp+(cu)BLASのCPU/GPUのスループット検証(ローカル編)](https://blog.shikoan.com/llama-cpp-local/) - LLaMA.cppのスループットをローカルで検証してみました。OpenLLaMA 7B/13Bをベースに、CPU/GPUのそれぞれの生成速度(token per second)と量子化の関係を実験的に調査します。 - [LLaMA.cpp+(cu)BLASのCPU/GPUのスループット検証(AWS編)](https://blog.shikoan.com/llama-cpp-aws/) - AWSのEC2環境でのLLaMA.cppのスループットをCPU,GPUインスタンスで比較してみました。結論としてはGPUのほうが良さそうということですが、インスタンスあたりのコストを考慮した比較なども行っています。 - [論文まとめ:Evaluating and Inducing Personality in Pre-trained Language Models](https://blog.shikoan.com/p2_prompting/) - ・言語モデルに内在する性格を、ビッグファイブ理論をベースに、心理テストで系統的に評価した研究 ・LLMが人間のパーソナリティを模倣できることを評価し、これにはInstruct TuningやRLHFをしているモデルが有効 ・特定の性格に誘導するためのP2法というプロンプトを提案。誘導した性格でエッセイ生成を行った - [Mini-GPT4をDockerで動かしてバッチ処理する](https://blog.shikoan.com/mini-gpt4-docker-batch/) - Mini-GPT4というマルチモーダルLLMをDockerを使ってバッチ処理をしてみました。係数を部分的にDockerイメージに組み込んだり、使用するLLMを切り替えられるようにちょっと工夫をしてみました。 - [論文まとめ:UniVTG: Towards Unified Video-Language Temporal Grounding](https://blog.shikoan.com/univtg/) - ・モーメント検索、ハイライト検知、動画要約をプロンプトベースで1つのモデルで実行できる基盤モデル ・疑似ラベルの生成に工夫点が多い。モデル構造は時系列方向の物体検出 ・CLIPやVideoCCのような事前学習モデルを時系列方向に拡張しつつ、タスクを統合したのが新規性 - [HMAC(メッセージ認証)をAWS Lambdaで動かしたときのスループットを確かめる](https://blog.shikoan.com/hmac-lambda/) - API Gatewayなどに対してLambdaで認証をかける場合に、SHAベースのHMAC(メッセージ認証)のスループットを調べてみました。Lambdaのスペックを変えながら、ペイロードに対する認証のスループットやメモリ使用量を比較し、おおよそのスペック感を見ていきます。 - [Gradioにおけるステート管理を考える](https://blog.shikoan.com/gradio-state/) - Gradioは簡単にデモアプリを作るときは便利ですが、アプリケーションが複雑になってきたときにステート管理が問題になってきます。ステート用のクラスを用意して、それでラップするのが良さそうだったので試してみました。 - [論文まとめ:GRiT: A Generative Region-to-text Transformer for Object Understanding](https://blog.shikoan.com/grit/) - ・物体検出にImage Captioningを導入した「Dense Captioning」の研究 ・検出とテキスト生成の2段階からなり、画像特徴と、テキストトークンの特徴をText Decoderに入れてキャプション生成 ・クローズドセットの物体検出に迫る性能を達成したほうか、LLMとの連携でも注目 - [Pythonで表をHTMLに変換する](https://blog.shikoan.com/python-table-html/) - Pythonで表をHTML形式に簡単に変換するための手法です。特定条件を強調表示するという、スタイリング周りも込みでPandasで可能です。インデックスの非表示や抽出周りがややこしかったのでまとめました。 - [Chrome Driverとバイナリーのバージョンを一致させるためのDockerfileの書き方](https://blog.shikoan.com/chrome-drive-binary/) - Seleniumでスクレイピングするには、Chrome Driveとバイナリーの両方が必要になりますが、両者のバージョンの一貫性をDockerfile内で保つことにややハマったので自分なりの解決方法を書きます。 - [docker-composeを使ってLambda用のAWSプロファイルを切り替える](https://blog.shikoan.com/docker-compose-lambda/) - Dockerを使ってLambdaをデプロイします。ローカルではAWSの名前付きプロファイルを使って、コードに変更を加えずに、AWSにデプロイする場合は工夫が必要になります。docker-composeのenvironmentを使うとそこをよしなにできました。 - [論文まとめ:Shap-E: Generating Conditional 3D Implicit Functions](https://blog.shikoan.com/shap-e/) - ・Text-to-3DやImage-to-3Dを拡散モデルベースで行う研究 ・3Dアセットや点群データの暗黙的なニューラル表現(INR)を得るエンコーダーを訓練し、NeRFとSDFの潜在表現を生成 ・INRをベースに、テキストや画像を条件とした3D生成ができ、品質は最適化ベースの手法に劣るが、レスポンスは速い - [論文まとめ:GALIP: Generative Adversarial CLIPs for Text-to-Image Synthesis](https://blog.shikoan.com/galip/) - タイトル:GALIP: Generative Adversarial CLIPs for Text-to-Im - [Jupyter Lab上からChatGPTを使える「Jupyter AI」をDockerから利用する](https://blog.shikoan.com/docker-jupyter-ai/) - Jupyter Lab上から簡単にChatGPTを使える「Jupyter AI」をカスタムDockerで動かしてみました。使用するライブラリに応じてオリジナルな開発環境を自在に構築することができます。 - [論文まとめ:EVA-02: A Visual Representation for Neon Genesis](https://blog.shikoan.com/eva-02/) - ・MIMのターゲットをCLIPし、大規模な画像の事前訓練を追加データなしで可能にしたEVAの後継版 ・NLPで導入されていたTransformerのアーキテクチャー改善を、画像の観点から導入 ・MIMとCLIPの相互訓練により、EVA-01より少量のパラメーター・データで高精度を達成 - [Stable Diffusion (Diffusers)でLoRA~理論と実践~](https://blog.shikoan.com/lora_diffusers/) - Stable DiffusionでのLoRAをdiffusersで試してみます。3Dモデルに対して、Unityで透過スクショを撮りLoRAで学習させるというよくあるやり方ですが、LoRAにおけるData Augmentationの有効性など興味深い点が確認できました。 - [Diffusers版のControlNet+LoRAで遊ぶ:理論と実践](https://blog.shikoan.com/controlnet_lora/) - 前回に引き続き、Stable DiffusionのControlNetで遊んでみます。ControlNetとは画像主に空間方向の強い条件付が可能です。LoRAと組み合わせて動画レンダリングのようなこともできつつあるので、使いこなすとかなり強力な武器になりそうです。 - [MultiDiffusionを試す(パノラマ生成、空間コントロール)](https://blog.shikoan.com/multidiffusion_control/) - パノラマ生成、空間コントロールできるMultiDiffusionを試してみました。空間コントロールでは、マスク設定し、領域ごとにプロンプトを指定することでレイアウトをある程度定義することも可能です。LoRAも併用できますが、あまり相性は良くないことがわかりました。 - [配置をコントロール可能な生成モデルGLIGENを試す](https://blog.shikoan.com/gligen/) - Bounding Boxベースの生成や、背景写真を指定したInpaintingができるGLIGENを試してみます。実はControlNetと同様に、様々な条件ベースの生成が可能なモデルです。 - [Diffusersでモデルマージをする](https://blog.shikoan.com/diffusers_merge/) - Diffuserでのモデルマージを検証します。Stable Diffusionには、CLIP、U-Net、VAEの3つのモデルからなり、それぞれをマージの効果が違うので、面白い結果になります。また、CLIP(Text Encoder)のマージについても、OpenAIのものと比較検討してみます。 - [GPT-4と画像生成を組み合わせたらヤバすぎた](https://blog.shikoan.com/gpt-4-image-generation/) - GPT-4/ChatGPTと画像生成(Stable Diffusion)の組み合わせを試したら、とんでもないクォリティのイラストができたので記事にしました。GPT-4に情景描写をさせてプロンプトに変換するものですが、あまりにGPTの描写能力が強いです。もう人間が1からプロンプトを作る時代は終わったのではないでしょうか。 - [DDPMで画像生成してみた](https://blog.shikoan.com/ddpm-image-generation/) - 現在使われている拡散モデルの最も基本的なモデルであるDDPM(Denoising Diffusion Probabilistic Models)を使って画像生成を試します。スクラッチからの訓練なので、Stable Diffusionのようにはうまくはいかないですが、拡散モデルの基本的なパターンは体感できるでしょう。 - [Kohya版のLoRAをDockerで訓練する](https://blog.shikoan.com/kohya-lora-docker/) - LoRAのデファクトスタンダードとなりつつあるKohya版のLoRA学習スクリプトをDockerで動かしてみました。Diffusersとの連携も可能で、DiffusersオフィシャルのLoRAよりも高品質な学習が期待できます。PyTorch2の環境でも動かすことができました。 - [論文まとめ:EVA: Exploring the Limits of Masked Visual Representation Learning at Scale](https://blog.shikoan.com/eva-01/) - ・マスク画像モデリング(MIM)を、重い教師データなしで10億パラメータまでスケールすることを実証 ・MIMの予測対象をピクセルではなく、CLIPの特徴量にすることで、幾何的・意味的な特徴の両方を学習 ・画像中心な基盤モデルの第一歩で、CLIPを学習と精度の両方から効率化を達成。画像言語の新たな架け橋として期待 - [論文まとめ:ControlVideo: Training-free Controllable Text-to-Video Generation](https://blog.shikoan.com/control-video/) - ・ControlNetの動画版で、Depthやエッジなどの動画を条件としてプロンプトから生成 ・各フレームのLatentを結合した注意機構、サンプラー内での平滑化、動画クリップごとの階層的な注意機構を導入 ・ちらつきや外観不一致の問題を軽減し、2080Tiが1枚でも100フレームの動画生成が可能 - [論文まとめ:Guided Image Synthesis via Initial Image Editing in Diffusion Model](https://blog.shikoan.com/iie_diffusion/) - ・拡散モデルの初期ノイズを操作することで、画像生成の失敗部分の編集を可能にする研究 ・初期ノイズの画素値が、生成結果に大きな影響を与えることを発見 ・Attention Mapとノイズの集約を組み合わせることで、レイアウト制御に応用可能 - [DiffusersでAttention Coupleを実装して領域別プロンプトを適用](https://blog.shikoan.com/attention_couple/) - DiffusersでAttention Couple(Attentionレイヤーをハックして領域別にプロンプトを適用する手法)をスマートな方法で実装できないかなと思ってやってみました。LoRAの実装を参考にして、AttnProcessorを書き換えると、Attentionを自在にハッキングでき、将来性ありそうです。 - [論文まとめ:Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection](https://blog.shikoan.com/grounding_dino/) - ・物体検出モデルDINOを、Vision & Langに拡張したオープンセット物体検出モデル ・Transformerベースの構造上の緻密なモダリティ融合と、クローズドな物体検出モデルの活用が大きな特徴 ・2023年4月時点でSoTAで、Segment Anythingとの融合も行われている - [論文まとめ:Sentence Simplification via Large Language Models](https://blog.shikoan.com/llm-sentence-simplification/) - ・LLM(ChatGPT、GPT3.5)を使った文章平易化の研究 ・「分かりづらい文章を平易な文章に直して。文章の意味は変えないで」という指示を入れて平易化を行い、Few-shotに拡張可能 ・LLMベースの手法が既存のSoTAを上回る - [論文まとめ:Flamingo: a Visual Language Model for Few-Shot Learning](https://blog.shikoan.com/flamingo/) - ・GPTライクなFew-shotを、画像/動画/テキストのクロスモーダルで行う研究 ・訓練済みの画像エンコーダーとLLMに、Perceiver ResamplerとGated XAttenを追加しつなぐ ・タスクに対応した「良いデータ」を作るための工夫が多数見受けられる - [LangChainでConversationMemoryBufferのトークン数対策をする](https://blog.shikoan.com/langchain_buffer_token/) - LangChainでChatGPTを使っていると、特に長時間や長い文章・指示を入れて会話するときにトークン数が問題になります。プロンプトに入れる会話履歴を選別するプロセスが必要になるのですが、今回は直近の履歴のトークン数のみ着目してトリムする方法を見ていきます。 - [LangChainのChatAgentのデフォルトのプロンプトをのぞく](https://blog.shikoan.com/langchain-agent-prompt/) - LangChainのAgentをカスタムできると自由度が上がりますが、LangChainのAgentがいまいちブラックボックスだった感があったので、デフォルトのプロンプトを解剖してみました。最近のLangChainだとChatGPT対応されており、これをカスタムすることで安価にAPIが使えそうです。 - [論文まとめ:Zero-1-to-3: Zero-shot One Image to 3D Object](https://blog.shikoan.com/zero123/) - ・訓練済みStable Diffusionを使い、単一画像から新たな視点画像を合成し、3次元復元を行う研究 ・大規模拡散モデルにカメラビューを取り込み、強いゼロショット性能を活用することで未知の視点を外挿 ・3次元復元として明示的に訓練されていないが、従来の手法よりを凌駕する結果。動画生成やグラフィックスに応用可能 - [CLIPから見るAttentionの有用性](https://blog.shikoan.com/alip-attention/) - Attentionはこれまでの研究から多く有用性は報告されていたのですが、ネットワークの内側で使われることが多く、わかりやすく差を体感できる例を自分は知りませんでした。今回はCLIPのAdapterという点から、Attentionの有無による精度比較を行ってみます。 - [論文まとめ:MultiDiffusion: Fusing Diffusion Paths for Controlled Image Generation](https://blog.shikoan.com/multi_diffusion/) - ・訓練済み拡散モデルから複数の画像を生成し、追加訓練なしでシームレスなパノラマ画像を生成するための研究 ・Denoising時の潜在特徴量をハックし、パノラマ画像の生成だけでなく領域指定した画像生成にも応用可能 ・領域指定した画像生成では、Stable DiffusionのInpaintingより高いIoUを実現 - [論文まとめ:Zero-shot Image-to-Image Translation](https://blog.shikoan.com/pix2pix-zero/) - ・訓練済み拡散モデルを用いて、画像変換タスクを、追加学習なし・手動プロンプトなしで行う研究 ・GPT-3の生成文章で、ドメイン間のCLIP埋込量の差を求め、画像の編集方向とする ・クロスアテンションガイドで、変換後での画像構造の維持をサポート ・GANによる蒸留で推論を3800倍高速化 - [論文まとめ:Generalized Decoding for Pixel, Image, and Language](https://blog.shikoan.com/xdecoder/) - ・オープンワールドのセグメンテーションタスクを統合した汎用モデル ・デコーダーの構造を工夫し、潜在・テキストクエリの2種類を入力、意味的・ピクセルレベルの2種類を出力とし、組み合わせでタスクを類型化 ・強いゼロショット転移性があり、下流タスクでSoTA ・画像編集や、主観変更したキャプション生成も可能 - [CoCaとBLIP2を使ってみた:ImageNet、キャプション生成](https://blog.shikoan.com/coca-blip2/) - CoCaとBLIP2の訓練済みモデルで遊んでみました。「ImageNet 1Kのゼロショット精度」と「キャプション生成」の2点について検証してみました。 - [ディープラーニングの動画読み込みをいい感じにしてくれる「Decord」の紹介](https://blog.shikoan.com/decord/) - ディープラーニングでの動画解析向けの読み込みライブラリ、Decordを紹介します。OpenCVよりもフレーム間のスキップやバッチ化が簡単にできるようになっています。PyTorchと連携させることも可能です。 - [colorsysでライブラリ不要でRGB→HSV変換をする](https://blog.shikoan.com/colorsys/) - PythonでRGB値から色相、彩度、明度への変換は画像処理ライブラリを使わないで行うことができます。ビルトインのcolorsysというモジュールを使います。 - [論文まとめ:BLIP-2: Bootstrapping Language-Image Pre-training with Frozen Image Encoders and Large Language Models](https://blog.shikoan.com/blip-2/) - ・視覚言語(V&L)モデルにおいて、事前学習コストを減らしつつ精度を出すための研究 ・事前訓練済みの画像モデル、大規模言語モデルをそのまま使い、「Q-Former」というアラインメント機構を導入し、高いゼロショット転移能力や言語生成を維持 ・Flamingo80Bより54倍少ない学習パラメーターで、SoTA性能を達成 - [論文まとめ:InstructPix2Pix: Learning to Follow Image Editing Instructions](https://blog.shikoan.com/instruct-pix2pix/) - ・画像に対して、テキストで直接指示を与えて、編集後の画像を対話的に生成するモデル ・GPT-3, Stable Diffusion, prompt-to-promptを使い訓練データセットを自動で生成した点が新規性 ・CLIPによるデータのノイズ除去、元画像vsプロンプトのトレードオフコントロールなどの工夫 - [いろんなT5からSentence Embeddingをとって遊ぶ](https://blog.shikoan.com/t5-sentence-embedding/) - 自然言語処理モデルT5を使って文章単位の埋め込み量を取得することを考えます。T5のEmbeddingはトークン単位ですが、平均を取ることで、簡単に文章単位に変換できます。Sentence T5としてモデルが公開されていなくても、既存のT5から特徴量を取得できることを目標とします。Flan-T5を応用例としてみます - [Gradioでセッションの概念を導入する](https://blog.shikoan.com/gradio_session/) - Gradioでユーザー名などセッションごとに変数を記録したいときはよくあります。gr.Stateで簡単にできるので、アンチパターンとセットで紹介していきます。 - [Gradioでログイン認証を入れる方法](https://blog.shikoan.com/gradio-authorize/) - Gradioで作ったアプリにログイン認証を入れる必要があったので、方法を調べてみました。launchの引数にa - [Text4Visを使ったオープンセットな動画認識をやってみた](https://blog.shikoan.com/text4vis/) - オープンセットな行動認識のできるText4VisというモデルをHMDB51で試し撃ちしてみました。訓練済みモデルが公開されており、すぐ利用することができます。 - [論文まとめ:StyleTTS: A Style-Based Generative Model for Natural and Diverse Text-to-Speech Synthesis](https://blog.shikoan.com/style-tts/) - ・1対多の音声合成が可能なText-to-Speechモデル ・StyleGANに触発され、スタイルや音韻、アラインメントをモデル内で分離し、デコーダーでAdaINで挿入 ・VITSよりも豊かなバリエーションを伴った合成結果を示し、単一話者モデルからZeroshot適応が可能 - [論文まとめ:OCR-free Document Understanding Transformer](https://blog.shikoan.com/donut/) - ・OCRに頼らない、End-to-Endの画像からの文章解析モデル ・SynthDoGという合成データによる事前学習を行い、任意の言語にスケール可能 ・クラウドOCRベースよりも、処理時間・精度ともに良い結果を示した ・日本語版のSynthDoGが公開されている - [論文まとめ:Lightweight Attentional Feature Fusion: A New Baseline for Text-to-Video Retrieval](https://blog.shikoan.com/laff/) - ざっくりいうと ・動画検索を目的として作られた、クロスモダリティのネットワークモジュールLAFFを提唱 ・Attentionフリーな単純な構造ながらSoTA ・訓練済みの静止画・動画・テキストモデルをFusionし、類似度を学習できる - [ffmpeg-pythonでサクッとNumPy配列から動画を出力する](https://blog.shikoan.com/ffmpeg-numpy/) - ffmpeg-pythonを使って、NumPy配列から動画を生成する方法を説明します。OpenCVのVideoWriterよりも、コーデックの問題が発生しづらかったり、画質を柔軟に選択できるようになります。とりあえず「サクッと」動画を出したいときに使えるのではないかと思います。 - [OpenCVで「 (-5:Bad argument) in function 'rectangle'」と怒られた](https://blog.shikoan.com/cv2_rectangle_error/) - cv2.rectangleを実行したところ、「-1: error: (-5:Bad argument) in function 'rectangle' - Layout of the output array img is incompatible with cv::Mat」というエラー。対処方法を見ていきます。 - [DockerでGPU版ONNXを使ってみる](https://blog.shikoan.com/docker-gpu-onnx/) - DockerでGPU版をONNXを動かしてみました。比較的に簡単に動かせたので、いろいろ便利だと思います。YOLOXを例に検証します。 - [論文まとめ:Large Language Models are Zero-Shot Reasoners](https://blog.shikoan.com/zero-shot-cot/) - ざっくりいうと ・大規模言語モデル(LLM)で算術問題を解く連鎖的なプロンプト「Zero-shot-CoT」を提唱 ・GPT-3に「ステップバイステップで考えよう」を追加するだけで、MultiArithのゼロショット精度が17.7%→78.7%でSoTA ・LLMに隠された高レベルでマルチタスクの認知能力を引き出すことができる - [FastAPI+MessagePackで画像とメタデータを一緒にPOSTする](https://blog.shikoan.com/fast-api-image-with-metadata/) - FastAPIで画像とメタデータ(テキストやリストなど)を一緒に、1つのオブジェクトとしてPOSTする方法を解説します。MessagePackで全部丸々固めてしまうやり方で、サクッと作りたいときに便利ではないかと思います。SageMaker Serverless Inferenceでの利用を想定しています。 - [論文まとめ:Extremely Simple Activation Shaping for Out-of-Distribution Detection](https://blog.shikoan.com/ash/) - ざっくりいうと ・ニューラルネットワークの学習データについて、分布内(ID)か、分布外(OOD)かを見分ける研究 ・訓練済みネットワークのロジットの直前の値を使い、上位○%をマスクし、エネルギースコアを計算する ・非常に単純な仕組みながらSoTAの性能を達成 - [不要なDockerイメージを一括で削除するテクニック](https://blog.shikoan.com/docker-remove-none-images/) - Dockerで不要な(リポジトリやタグがnone)のイメージを、イメージIDをいちいち入力せずに一括で消去する方法を紹介します。ゴミイメージが溜まったときに便利です。 - [論文まとめ:Domino: Discovering Systematic Errors with Cross-Modal Embeddings](https://blog.shikoan.com/domino/) - ざっくりいうと ・訓練済みV&Lモデルの特徴量を使い、分類モデルの性能を悪化させている評価データセットのスライスを検出する ・当該スライスを定量的に判定できるだけでなく、理由も記述できる ・Sklearn-likeのAPIが用意され、OSSとして手軽に利用できる - [論文まとめ:Exploring Visual Prompts for Adapting Large-Scale Models](https://blog.shikoan.com/visual-prompts/) - ざっくり言うと:・CLIPを任意のデータセットに適応させるために、共通の画像を外挿する「Visual Prompting」を提唱 ・ホワイトノイズ状のパディングを適用するだけで、ファインチューンに準じるような精度向上が見込まれる ・提案手法によるCLIPからの精度改善が、分布ギャップによることを定量的に示した - [論文まとめ:Visual onoma-to-wave: environmental sound synthesis from visual onomatopoeias and sound-source images](https://blog.shikoan.com/visial-onoma-to-wave/) - ざっくりいうと:・ 漫画の効果音で見られる視覚的オノマトペ(画像での擬声語)から、環境音を合成するVisual onoma-to-waveを提案 ・視覚的オノマトペと補助画像を入力とし、単純なCNNとCLIPでエンコードする ・テキストベースよりも詳細な音構造を持つ合成ができ、漫画やVRに応用可能 - [論文まとめ:Imagen Video: High Definition Video Generation with Diffusion Models](https://blog.shikoan.com/imagen-video/) - ざっくりいうと ・Googleが約半年前に発表したImagenの動画への拡張 ・空間/時間方向への畳み込み・Attentionを交互に使い、画像モデルをほぼそのまま動画へと拡張 ・T5エンコーダー、v-prediction、画像動画の同時訓練の有効性を実証。高画質の動画生成や、動画へのスタイル転移を可能とした - [論文まとめ:High-Resolution Image Synthesis with Latent Diffusion Models](https://blog.shikoan.com/latent-diffusion/) - ざっくりいうと:・Stable Diffusionの元論文。・従来の拡散モデルはピクセルベースで行っているため、計算量が大きい。画像をエンコードし、潜在空間上で拡散モデルを適用することで、訓練推論とも計算量を下げ、生成画像の品質を維持できる。・超解像やInpaintingができ、従来の専用モデルに匹敵するものとなった。 - [img2pdfを使ってPDFにカラープロファイルを確実に埋め込む](https://blog.shikoan.com/img2pdf-icc-profile/) - 画像のカラープロファイルは印刷の際に重要なことが多いですが、img2pdfを使ってPDFにICCプロファイルを確実に埋め込む方法を見ていきます。入稿データにPDFが指定されている場合に使えるテクニックです。 - [論文まとめ:Text2Human: Text-Driven Controllable Human Image Generation](https://blog.shikoan.com/text2human/) - ざっくりいうと ・人間のポーズマップから、服の形状やテクスチャをテキストで指定しつつ、着用後の画像を生成する研究。(1)服の形状を推定、(2)着用後の画像を生成する2段階のモデル。VQVAEベースの拡散モデル+Mixture-of-Expertsを導入することで、先行研究より複雑で多様性のあるテクスチャの服を生成可能 - [論文まとめ:SegNeXt: Rethinking Convolutional Attention Design for Semantic Segmentation](https://blog.shikoan.com/seg-next/) - ざっくりいうと:・軽量性と精度を両立したのが売りのセグメンテーションモデル。CNNベースにもかかわらず、Transformerベースのモデルに対して勝利。・先行研究のDeepLabV3+、SegFormerなどのモデルに見られた工夫を取り入れつつ、計算量オーダーを削減している。 - [論文まとめ:An Image is Worth One Word: Personalizing Text-to-Image Generation using Textual Inversion](https://blog.shikoan.com/textual-inversion/) - ざっくり言うと:・事前訓練された拡散生成モデルを使い、人間による言語記述なく、疑似単語「S*」を埋め込み空間上で探索する研究。・「S*」を人間が直接記述しないこと、CLIP空間上の計算を直接行わないことで、細部がより表現できるようになった。 ・プロンプトで疑似単語を指定すると、スタイル変換、バイアス除去など応用可能 - [cv2.rectangleのBounding Boxの指定でハマった](https://blog.shikoan.com/cv2-rectangle/) - OpenCVのrectangleはBounding Boxを描画する際によく使う関数ですが、引数の数によって座標指定のフォーマットが違います。これを知らなくてえらいハマったので忘備録として残しておきます。 - [論文まとめ:Patching open-vocabulary models by interpolating weights](https://blog.shikoan.com/paint-open-vocabulary/) - ざっくりいうと:CLIPのようなオープンボキャブラリーモデルを、オープンセットでの精度を維持しつつファインチューニング(FT)するための研究。FT前後で係数を線形補間し、柔軟なAPIを維持し、0からの再訓練なく、サポートタスクでの精度を維持。タイポグラフィ攻撃対策や、未知クラスへの適用、クラスの外挿・内挿の応用可能 - [NumPy関数だけでTopKを求め、多次元のインデックスをスライスするための方法](https://blog.shikoan.com/numpy_topk/) - NumPy関数を使って多次元配列のTopKを求める方法を検証します。PyTorchの関数を使えば簡単にできますが、NumPyだけで行う場合は工夫が必要です。いつも忘れるので自分用忘備録に - [論文まとめ:Collaborative Neural Rendering using Anime Character Sheets](https://blog.shikoan.com/conr/) - ざっくりいうと:数枚のアニメキャラクター画像と、ポーズのマップから、任意のポーズの画像をレンダリングする研究。UVマップを使わず、3次元ワールド座標系でのランドマーク点の対応を計算する「Ultra-Dense Pose」というポーズマップを新たに導入。NeRFで難しかった髪型やアクセサリに対してもロバスト - [論文まとめ:Few-Shot Font Generation by Learning Fine-Grained Local Styles](https://blog.shikoan.com/fsfont/) - ざっくりいうと:GANを使ってフォントを生成する研究。部首のような局所的な部分のスタイルに着目し、Cross Attentionを用いてターゲット-参照間の細かい表現を学習する。幅優先探索で部首の一致をみて、学習に有益なデータを参照データとして選択する工夫がある。SoTA達成 - [PyTorchのDataLoaderで動画を並列化して読み込むためのハック](https://blog.shikoan.com/parallel-video-dataloader/) - 動画の前処理はフレーム単位の画像処理をするため重いですが、特にOpenCVで動画を読み込む場合、OpenCVの特性上並列化が難しいという面倒な状況に遭遇します。この記事では、全フレームを書き出して、DataLoaderで並列的に扱えるようにし、joblib+ファイル圧縮がJPEGやPNGより高速に回せることを示します。 - [論文まとめ:Decoder Denoising Pretraining for Semantic Segmentation](https://blog.shikoan.com/decoder-denoising/) - セマンティックセグメンテーションでは、通常はEncoderを訓練済みモデル、Decoderはランダムな重みで初期化して訓練する。Segの前に、DenoisingとしてDecoderを訓練したほうが、特にFew-shotにおいていいことがわかった。拡散モデルに着想を得て、従来のSoTAを上回る一貫した性能向上を示した - [3DのポーズやUVマップのとれるトラッキングPHALPを試してみた](https://blog.shikoan.com/phalp/) - 3Dの位置、外観、姿勢といったパラメーターは3Dモデルをレンダリングする際には必須です。CVPR2022にあった「PHALP」が、それらのパラメーターを推定しつつ、トラッキングしてくれ、個人的に面白そうだったので動かしてみました。 - [YOLOX+ByteTrackでお手軽トラッキングやってみた](https://blog.shikoan.com/yolox-byte-track/) - YOLOX+ByteTrackでトラッキングをやってみました。「とりあえずサクッと訓練済みモデルでトラッキングしたい」というときに使える手法です。 - [論文まとめ:GLIPv2: Unifying Localization and Vision-Language Understanding](https://blog.shikoan.com/glip-v2/) - ざっくりいうと:ローカライゼーションタスクと視覚言語理解を共通でこなす基盤モデル Zero-shot推論もできるほか、プロンプト部分の少量のパラメーターを訓練することで、Fine-tuningに匹敵する精度を達成 物体検出タスクにおいて、高いFew-shot性能があるほか、数々のタスクでSoTAに近い性能を達成 - [論文まとめ:Replacing Labeled Real-Image Datasets With Auto-Generated Contours](https://blog.shikoan.com/auto-generated-contours/) - ざっくりいうと:数式からフラクタル・輪郭画像のデータセットを作り、ViTの事前学習に使う、数式駆動教師あり学習(FDSL)の研究。FDSLでは輪郭が重要で、ViTのSelf Attentionが輪郭に着目していくことを発見。事前学習において、ImageNet21kの教師あり学習を上回る分類精度を叩き出した - [論文まとめ:Extreme Compression for Pre-trained Transformers Made Simple and Efficient](https://blog.shikoan.com/extreme-compression/) - ざっくりいうと: 訓練済みTransformerの軽量化、特に超低ビット精度で量子化し、モデルサイズを削るための極限圧縮の研究。先行研究では3段階に分かれていた複雑な蒸留のパイプラインを、1段階に簡素化し、データ拡張を使用し、長く訓練するXTCというフレームワークを提唱。極限量子化+層削減により、モデルサイズを50倍削減し、GLUEタスクでSoTAを達成 - [論文まとめ:Playable Environments: Video Manipulation in Space and Time](https://blog.shikoan.com/playable-environments/) - ざっくりいうと: 既存のビデオに対して、オブジェクトの動きやカメラの向きをコントロールして新たな動画を生成する「Playable Environments」を提唱。NeRF+生成モデルの流れを踏襲しつつ、ゲームのようにユーザーが複数のオブジェクトをコントロールしつつ、教師なしでオブジェクトのコントロールの表現を獲得 - [訓練済みYOLOXでサクッと推論したい場合に使える方法](https://blog.shikoan.com/pretrained-yolox-inference/) - 物体検出を使いたい場合、カスタムデータで訓練することなく、COCO Pretrainedモデルによる推論だけで事足りることも多々あります。2021年最新モデルのYOLOXを使って、サクッと推論する方法を見ていきましょう。 - [論文まとめ:Deep Spectral Methods: A Surprisingly Strong Baseline for Unsupervised Semantic Segmentation and Localization](https://blog.shikoan.com/deep_spectral_methods/) - ざっくりいうと ・自己教師あり学習モデルの中間層の値を使い、教師なしで物体検出やセグメンテーションを行う研究 ・スペクトルグラフ理論をベースとし、アフィン行列の固有ベクトルを解析。セグメンテーションではクラスタリングを行い、擬似ラベルを獲得 ・従来の教師なしのアプローチを大きくアウトパフォームしSoTA - [PyTorch lightningのCSVLoggerを攻略する](https://blog.shikoan.com/pytorch-lightning-csvlogger/) - PyTorch lightningのロガーとしてTensorBoardがデフォルトですが、出てきた評価指標を解析するとCSVでロギングできたほうが便利なことがあります。lightningのCSVロガーとして「CSVLogger」がありますが、この使い方の資料があまりになかったので調べてみました。 - [PyTorch LightningのGPU訓練で「RuntimeError: Input type (torch.cuda.FloatTensor) and weight type (torch.FloatTensor) should be the same」と怒られた場合](https://blog.shikoan.com/pytorch-lightning-runtime-error/) - PyTorch LightningはGPUで訓練しても「.to(device)」のようなデバイス指定をしなくていいのが売りですが、「デバイスが異なる」と怒られてハマってしまったので、解決法を示します。 - [論文まとめ:Discovering Underground Maps from Fashion](https://blog.shikoan.com/underground-map-fashion/) - ざっくりいうと:SNSに投稿された写真から、似たようなファッションセンスを持つ領域を分割し、ボトムアップで近傍地図を自動作成する研究。従来の行政区画のようなトップダウンのアプローチとは異なり、あくまで衣服の特徴からのクラスタリング。同心円状に集合を作り、特徴をヒストグラムでまとめクラスタリングをかける - [論文まとめ:(DALL・E 2論文)Hierarchical Text-Conditional Image Generation with CLIP Latents](https://blog.shikoan.com/dall-e2/) - ざっくりいうと、 ・訓練済みCLIPと拡散モデルを使った、テキスト→画像による生成モデル ・CLIPの画像埋め込み特徴を生成するような、拡散モデルベースの事前分布モデルを開発 ・先行研究のGLIDEの改良という位置づけだが、多様性に富む画像生成に成功 - [論文まとめ:One-Shot Adaptation of GAN in Just One CLIP](https://blog.shikoan.com/one-shot-clip/) - ざっくりいうと ・訓練済みCLIPとStyleGANを使ったOne-shot GAN ・Source-Targetの画像全体やパッチ間の、CLIP空間での類似度を学習する正則化を提唱し、One-shot下でおこるオーバー/アンダーフィッティングの解消に貢献 ・損失関数を変更すればテキストベースのTargetも可能 - [PyTorch lightningで訓練時間を指定して自動的に訓練終了+再開(Google Colab向け)](https://blog.shikoan.com/pytorch-lightning-max-time/) - PyTorch lightningでは、Trainerにオプションを追加するだけで、訓練時間を指定できます。これとCheckpointを組み合わせるとGoogle Colabでかなり便利だということがわかったので検証していきたいと思います。 - [argparseのハイフン置き換え仕様でハマった](https://blog.shikoan.com/argparse-replace-hyphen/) - argparseではハイフンのコマンドライン引数をアンダーバーに置き換える仕様があります。これはPythonの言語仕様の都合によるものですが、思わぬハマり方をしたので自分のメモ用に書いておきます。 - [PyTorch→ONNXのコンバートでモデルの入力サイズを可変にして推論する](https://blog.shikoan.com/dynamic-onnx/) - ONNXでモデルは入力サイズを可変にできます。PyTorch→ONNXの変換と、ONNXRuntimeでの推論方法、また可変にしたことによる速度の副作用を検証していきます。 - [Google Colabで訓練実行中の裏で定期的にバックアップ取りたい](https://blog.shikoan.com/colab-snapshot/) - Google Colabで定期的にGoogle Driveにバックアップにとる方法を紹介します。Linuxコマンドだけでできる単純な方法で、追加の課金は必要ありません。 - [Windows11+WSL2でGPUのPyTorchを最低限動かすためのオレオレDockerfile](https://blog.shikoan.com/wsl2-pytorch-image-custom-build/) - Windows11+WSL2でGPU対応のPyTorchのDockerイメージを1から作る方法を紹介します。CUDAとCuDNNはDockerhubで公開されているnvidiaのイメージを用い、ライブラリのインストールは各自行います。あなただけの最強環境を作ろう! - [Vue3でVueのインスタンスの外側からデータや関数を参照できない場合](https://blog.shikoan.com/vue3-outside-function/) - すべてのコードがVueで完結しない場合など、Vueのインスタンスの外側からVueの関数やデータを参照したいことがたまにあります。そこでしょうもないハマり方したのでメモがてらに書いていきます。 - [Windows11でWSL2+nvidia-dockerでPyTorchを動かすのがすごすぎた](https://blog.shikoan.com/wsl2-ndivid-docker-pytorch/) - Windows11にはWSL2があり、Linux環境からGPUありのPyTorchを動かすことが可能です。WSL2経由のほうがWindowsネイティブよりも訓練速度が倍になります。nvidia-dockerを使うと、CUDAのバージョンを気にすることなく、環境構築できます。 - [Albumentationsとtorchvisionで前処理の挙動を揃えたい](https://blog.shikoan.com/albumentations-totensor/) - AlbumentationsとtorchvisionのToTensorは微妙に挙動が異なります。テンソル化の前処理を揃えないと精度が下がることがあるので、その検証をしていきたいと思います。結論としては、AlbumentationsではToTensorの前にNormalizeが必要です。 - [SwinTransformerで転移学習(EfficientNet/ResNet50との比較)](https://blog.shikoan.com/swin-transformer-transfer-learning/) - Swin Transformerを転移学習してみます。1から学習させる場合と異なり、そこまで強いData Augmentationをかけなくても訓練は安定します。訓練済み係数も含め、timmライブラリから簡単に利用できます。 - [SwinTransformerでCIFAR-10を一から訓練する](https://blog.shikoan.com/swin-transformer-cifar10/) - 画像のTransformer系で有望なモデルである「Swin Transformer」でCIFAR-10を1から訓練してみました。1からの訓練はCNNほど楽ではありませんが、流行りのTransformerを気軽に扱うことができました。 - [Cosine DecayとWarmupを同時にこなすスケジューラー(timm使用)](https://blog.shikoan.com/timm-cosine-lr-scheduler/) - 学習初期は徐々に学習率を上げていく「Warmup」と、学習率をなめらかに下げていく「Cosine Annealing」を1つのオプティマイザーとして楽に実装する方法を、timmライブラリを使って見ていきます。 - [「Patches Are All You Need?」のからくりを読み解く](https://blog.shikoan.com/patches-are-all-you-need/) - ICLR2022のレビューとして投稿された「Patches Are All You Need?」という論文が気になったので読んでみて、少し試してみました。画像の高周波の成分の活用や、スループットと精度のトレードオフが見えてくる興味深い論文でした。 - [NumPy+waveでファミコン風の音色を自作する](https://blog.shikoan.com/numpy-wave-synthesis/) - NumPyを使って、矩形波、25%/12.5%パルス波、三角波、ノイズなどファミコン音源で使われているような音色を実装してみました。周波数のコントロールと併用すれば、NumPyはシンセサイザーとしても活用できます。 - [VOICEVOXをPythonから利用し、wavファイルで保存する方法[AzureとGoogle Cloudの比較あり]](https://blog.shikoan.com/voicevox-python/) - PythonからVOICEVOXの音声を合成する方法を紹介します。VOICEVOXの合成音声を、Azure Text to SpeechやGoogle CloudのText-to-speechとも比較してみました。GoogleやAzureと場合によっては互角になりうる期待のソフトウェアです。 - [地理院地図から画像を取得し、任意の緯度経度に文字を入れる方法](https://blog.shikoan.com/gsi-tile/) - Google Map APIの代替として、無料で使える地理院タイルを使ってみました。Pythonのstaticmapと併用すれば、緯度経度から地図画像に文字を入れられました。地理院地図だけでなく空中写真での利用も可能です。 - [Vue.js+Bootstrap+linq.jsでサークルの販売物のダッシュボードをサクッと作ってみた話](https://blog.shikoan.com/book-dashboard/) - 「じゅ~しぃ~すくりぷと」の販売物の一覧(ダッシュボード)をWebあんまり詳しくない自分が作ってみました。Vue.jsとBootstrapとlinq.jsを使って2-3日でできました。 - [ごちうさで始める線画の自動着色(2)~TFRecordの作成~](https://blog.shikoan.com/gochiusa-02/) - KaggleにあったGochiUsa_Facesデータセットを使って、ごちうさキャラの線画の自動着色で遊んでみました。この投稿では訓練の前段階としてTFRecordを作成していきます。 - [ごちうさで始める線画の自動着色(1)~データセットのEDA~](https://blog.shikoan.com/gochiusa-01/) - KaggleにあったGochiUsa_Facesデータセットを使って、ごちうさキャラの線画の自動着色で遊んでみました。この投稿では下準備として、データセットのEDAをします。 - [tf.keras.models.Modelのsave_weightsのあれこれ:オプティマイザーの値を復元するには](https://blog.shikoan.com/tf-save-and-load-optimizer-value/) - Kerasでモデルの保存するとき、save_weightsの関数をよく使います。しかし、オプティマイザーの値を復元して訓練再開しようとするとかなりややこしいことになります。モデルの値の復元は簡単ですが、オプティマイザーの復元をどうやるのか探ってみました。 - [Byte列を通じてNumPy配列からTensorFlowのテンソルへ変換する](https://blog.shikoan.com/tf-io-decode-raw/) - Byte列を通じてNumPy配列からTensorFlowのテンソルへ変換する方法です。TFRecordで記録したデータを扱う際に役に立つと思われるやり方です。 - [TFRecordを自作して最低限のCIFAR-10を訓練するまで](https://blog.shikoan.com/cifar-10-tfrecord/) - TFRecordを自作して、とりあえずCIFAR-10を訓練するための最低限の処理を書きました。なんでもBytesListに格納する方法です。 - [Pillow(Python)でRGB→CMYKのプロファイル変換](https://blog.shikoan.com/cmyk-profile-convert-in-python/) - RGBからCMYKへの変換は印刷をする際に必要になりますが、通常はPhotoshopなどの有料の画像編集ソフトを使います。実はこれはPythonで無料でできます。Pillowを使ったやり方を紹介します。バッチ処理にも便利です。 - [PillowでCMYK画像を扱う方法](https://blog.shikoan.com/pillow-cmyk/) - 印刷などでRGBではなくCMYK画像を扱いたいことがあります。PythonのPillowライブラリでは、CMY印刷などでRGBではなくCMYK画像を扱いたいことがあります。PythonのPillowライブラリでは、CMYK画像も扱えます。普通CMYK画像は有料の画像編集ソフトを使うことが多いですが、この方法だと無料でできます。それを見ていきましょう。 - [PythonでPDFをトリミングする方法](https://blog.shikoan.com/pdf-trimming-in-python/) - 印刷用の原稿では「塗り足し」に気をつける必要があります。印刷用と表示用でページサイズが変わり、表示用のPDFを作るのに印刷用のPDFをトリミングする必要が出てきます。この変換をPythonで一括でやってみます。 - [C#で画像をNumpy配列に変換する方法](https://blog.shikoan.com/using-numpy-array-in-csharp/) - C#でPythonのNumpy配列を使えるライブラリがありますが、C#で画像をNumpy配列化するときに少し大変だったのでメモとして書いておきます。 - [Pythonで最も簡単にタイムスタンプ←→文字列や時差変換する方法](https://blog.shikoan.com/python-convert-timestamp/) - Pythonでタイムスタンプの文字列をパースするには「time.strftime」が紹介されることが多いですが、実はもっと簡単な方法があります。この方法では、グリニッジ標準時→東京時間のような時差変換(時差を意識したタイムスタンプへの変換)も同時に行うことができ、とても便利です。 - [PDFのフォント埋め込み問題(T3フォント問題)を回避しながら入稿データを作るのに苦労した話](https://blog.shikoan.com/pdf-font-embed/) - PDFは便利ですが、フォントの埋め込みが大きな問題になることがあります。T3フォント問題を回避しつつ印刷所に入稿できるデータを作るのにはどうすればよいのか、変換時に画質劣化を起こさないようにするにはどうすればよいのかを調べてみました。 - [tf.data.Datasetでdictなデータと仲良くする方法](https://blog.shikoan.com/tf-data-from-dict/) - TensorFlow2.0でdict構造のデータから、tf.data.Datasetを作る方法を見ていきます。バッチの軸の結合処理を一切書かずに、dict構造を保ったままバッチ化してくれる便利な方法です。 - [ImageNetの訓練時の前処理についてまとめた](https://blog.shikoan.com/imagenet-preprocessing/) - ImageNetで訓練済みのモデルを使う際の前処理は出てきても、モデルを訓練するときの前処理、特に訓練画像のアスペクト比がまばらなケースでどう前処理するのかがほとんど出てきませんでした。Alex Net, ResNet, Inceptionの論文や公式実装に使われている前処理をまとめてみました。 - [ブロードキャストしたNumpy配列に代入するときにハマった話](https://blog.shikoan.com/assign-to-broadcasted-numpy-array/) - Numpyのブロードキャストは便利ですが、ブロードキャストした配列に代入するときだけ思わぬ落とし穴があります。「ValueError: assignment destination is read-only」というエラーが出たとき、およびその解決方法を見ていきます。 - [tf.functionの再トレースによる訓練の低速化について確かめる](https://blog.shikoan.com/tf-function-tracing/) - TensorFlow2.0において、tf.functionを使うと計算が高速化することはよく知られていますが、その代償として入力のshapeが可変の場合に「再トレース」が発生し訓練が低速化することがあります。再トレースが頻発するケースに遭遇したので、どの程度悪化するものなのか確かめてみました。 - [テンソル同士の行列積を計算するにはnp.dot?np.matmul?np.tensordot?](https://blog.shikoan.com/tensor-product-in-numpy/) - テンソルと行列、テンソルとテンソルの積について、どの使えばいいのか(np.dot, np.matmul, np.tensordot)わからなくなることがあります。アフィン変換の例を通じてどの関数を使えばいいのか見ていきます。 - [RCNNで使われるSelective Searchについてまとめてみる](https://blog.shikoan.com/selective-search-rcnn/) - RCNNで用いられる「Selective Search」について中で何をやっているのかまとめてみました。RCNNの論文を読んでいるときによく出てくる「Selective Search」や「Region Proposal」といった用語が何を示しているのか、ソースコードを追うことで理解を進めます。 - [TensorFlowの前処理を劇的に遅くするNumpy配列への変換に注意](https://blog.shikoan.com/tf-tensor-convert-too-slow/) - TensorFlowの前処理では、Numpy配列とTensorFlowの配列を同時に扱うことがあります。サンプル単位のTFの配列を、np.asarrayでバッチ化したら激重になってしまったので、解決策とベンチマークを調査してみました。 - [np.meshgridでベクトルから総当りで配列を作る](https://blog.shikoan.com/meshgrid-numpy/) - 等高線プロットによく使われるnp.meshgridですが、総当り的に格子点を作るという便利な使い方をできます。テンソル計算と組み合わせることで、総当り的に配列を作り、一括して計算することができます。 - [物体検出で使うMean Average PrecisionをNumpyで実装する](https://blog.shikoan.com/mean-average-precision-numpy/) - 物体検出でよく使われる評価指標・Mean Average Precision(mAP)をNumpyで実装しました。計算に癖があるので注意が必要です。 - [Booth倉庫の入荷・発送遅延につきまして](https://blog.shikoan.com/techbook08-news05/) - 新刊『モザイク除去から学ぶ 最先端のディープラーニング』をご購入いただきありがとうございます。入荷遅延について質問が多いので記事にいたしました。 - [マークダウンから正規表現で目次を作る](https://blog.shikoan.com/create-index-from-markdown/) - マークダウンからタイトルを取り出して目次を作りたいケースでは、「#」で始まる行を抜き出したり、Markdown TOCというプラグインを使うとできます。しかし、Pythonのようにコードに「#」が含まれているケースはプラグインの動作が正常にいかないことがあります。その対処法を見ていきます。 - [ご報告](https://blog.shikoan.com/techbook08-news04/) - いつもこしあん及びじゅ~しぃ~すくりぷとを応援していただきありがとうございます。 突然ですが、皆様にご報告がございます。 - [ImageNetのVal精度を再現するための前処理を考える](https://blog.shikoan.com/imagenet-val-preprocessing/) - ImageNetのValidation精度は論文でよく見ますが、その精度をどのようにして再現するのかがよくわからなかったので書きました。Ten-Cropをするのが最も簡単な方法です。 - [新刊のご購入にはとらのあなが便利です](https://blog.shikoan.com/techbook08-news03/) - 中止になりました技術書典8の新刊『モザイク除去から学ぶ 最先端のディープラーニング』通販はBoothととらのあなで行われています。 - [技術書典8の新刊の書籍版+電子版の注文受付を開始しました](https://blog.shikoan.com/techbook08-news02-2/) - コロナウイルスにより中止になってしまった技術書典8の新刊の予約受付を開始しました。 - [技術書典8の当日開催が中止になっても新刊を出す7つの理由](https://blog.shikoan.com/techbook08-news02/) - 技術書典8の新刊「モザイク除去から学ぶ 最先端のディープラーニング」の無料サンプルを公開しました! Boothからダウンロードできます。通販は納品が完了するまでもうしばらくお待ち下さい。 - [新型肺炎に対する2/15時点での想定について](https://blog.shikoan.com/techbook08-sp/) - 技術書典8で新刊を委託を予定しておりますこしあんです。新型肺炎の感染拡大に伴い、IT系のイベントを含め各種中止の報告が上がっております。そこで私個人の現時点(2/15)に対する認識を記しておきます。 - [技術書典8で新刊を委託します!](https://blog.shikoan.com/techbook08-news1/) - 本書の特徴:モザイク除去を起点として、機械学習・ディープラーニングの基本をはじめ、GANの基本や発展型、国際学会の最新論文をカバーしていく本です。特にGANの発展型は市販の本でほとんどカバーされていない内容です。英語の原著論文を著者がコードに落とし込み、実装を踏まえながら丁寧に解説していきます。 - [スタイル変換のStyle Lossとは何をやっているか](https://blog.shikoan.com/style-loss/) - スタイル変換やImage to Imageの損失関数で使われる・Style Lossの実装を詳しく見ていきます。Style Lossの計算で用いているグラム行列の計算方法をTensorFlowで考えます。 - [KerasのLambdaレイヤーの引数をループ内で変えるときにハマった話](https://blog.shikoan.com/lambda_arguments/) - KerasのLambdaレイヤーはとても便利で、自作の関数ほか、TensorFlowの組み込みの強力な関数もレイヤーとして扱うことができます。しかし、ループごとに引数を変えながらLambdaレイヤーでラップするようなケースでハマってしまいました。depth_to_spaceを例に見ていきます。 - [複数の入力にtf.scanを使うケースでValueErrorが出たときの対処法](https://blog.shikoan.com/tf-scan-value-error/) - 複数の入力に対してtf.scanを使うケースで、入力や引数のshapeが正しいのに「ValueError: The two structures don't have the same nested structure.」と怒られることがあります。その対処法を見ていきます。 - [モルフォロジー変換は実はMaxPoolingだったという話(TensorFlowでの実装)](https://blog.shikoan.com/morphological-transformations-maxpool/) - 画像処理の重要な変換に膨張(Dilation)や収縮(Erosion)といったモルフォロジー変換があります。実はこれはディープラーニングでよく使われるMaxPoolingフィルターで置き換えることができます。TensorFlowの実装で見ていきます。 - [TensorFlowの関数で画像にモザイクを書ける方法](https://blog.shikoan.com/how-to-add-mosaic-in-tensorflow/) - TensorFlow2.0の関数を使い、画像にモザイクをかける方法を紹介します。OpenCVやPILでの書き方はいろいろありますが、TensorFlowでどう書くかはまず出てきませんでした。GPUやTPUでのブーストも使えます。 - [TensorFlow2.0のTPUでモデルを保存したり、CPUと相互運用する方法](https://blog.shikoan.com/save-models-between-cpu-and-tpu-in-tf20/) - TensorFlow2.0+Colab TPUでモデルを保存する方法、CPUとTPUで保存した係数を相互運用する方法、TPUを意識したモデルの保存方法を見ていきます。 - [論文メモ:Concurrent Spatial and Channel ‘Squeeze & Excitation’ in Fully Convolutional Networks](https://blog.shikoan.com/concurrent_spatial_and_channel_squeeze_and_excitation/) - Squeeze and Excitationの派生形であるsc-SEを提唱している論文。Squeeze & Excitationの派生形と構成がわかりやすくまとまっており、効果が検証されています。 - [TensorFlowでもラプラシアンピラミッドを作る](https://blog.shikoan.com/tensorflow-laplacian-pyramid/) - 以前作ったPyTorchのラプラシアンピラミッドをTensorFlow2.0に移植しました。何かと便利なラプラシアンピラミッドをつかってみよう。 - [TensorFlow2.0でDistributed Trainingをいい感じにやるためのデコレーターを作った](https://blog.shikoan.com/distributed-train-decorator-in-tf20/) - TensorFlow2.0+TPUで訓練していて、いちいちマルチデバイスための訓練・Validationのコード書くの面倒くさいなと思ったので、それをいい感じにラップしてくれるデコレーターを作ってみました。ただ単に「@distributed」とつけるだけで使えます。 - [Numpyでインデックスカラー画像(VOC2012のマスク)→RGB画像への変換をする方法](https://blog.shikoan.com/numpy-indexedcolor-to-rgb/) - Semantic Segmentationのマスク画像には「インデックスカラー」というRGBとは異なったフォーマットを用いていることが多いです。これはPILでRGBに変換できます。しかし、モデルの予測を表示したいときはダイレクトにNumpyで計算できると便利です。VOC2012のマスク画像を例に見ていきます。 - [TensorFlow2.0で訓練の途中に学習率を変える方法](https://blog.shikoan.com/how-to-change-learningrate-in-tensorflow2-0/) - TensorFlow2.0で訓練の途中に学習率を変える方法を、Keras APIと訓練ループを自分で書くケースとで見ていきます。従来のKerasではLearning Rate Schedulerを使いましたが、TF2.0ではどうすればいいでしょうか? - [TensorFlow2.0でDistribute Trainingしたときにfitと訓練ループで精度が違ってハマった話](https://blog.shikoan.com/tf20-distribute-error/) - TF2.0でDistribute Training(複数GPUやTPUでの訓練)をしたときに、Keras APIのfit()でのValidation精度と、訓練ループを書いたときの精度でかなり(1~2%)違うという状況に遭遇しました。特定の文を忘れただけだったのですが、解決に1日かかったのでメモとしておいておきます。 - [TensorFlow2.0+TPUで複数のモデルを交互に訓練するテスト](https://blog.shikoan.com/tf20-tpu-multiple-model/) - GANの利用を想定します。以前TPUだと複数のモデルを同時or交互に訓練するというのは厳しかったのですが、これがTF2.0で変わったのか確かめます。 - [TensorFlow2.0のGradientTapeを複数使う場合のサンプル](https://blog.shikoan.com/gradienttape-multi/) - TF2.0系で少し複雑なモデルを訓練するときに、GradientTapeを複数使うことがあります。例として、微分を取りたい場所が2箇所あるケースや、2階微分を取りたいケースを挙げます。場合によって微妙に書き方が違うので注意が必要です。 - [TensorFlow2.0+TPUでData AugmentationしながらCIFAR-10](https://blog.shikoan.com/tf20-tpu-cifar/) - TensorFlow2.0+TPUでData AugmentationしながらCIFAR-10を分類するサンプルです。Data Augmentationはtf.dataでやるのがポイントです。 - [PyTorchでSliced Wasserstein Distance (SWD)を実装した](https://blog.shikoan.com/swd-pytorch/) - PyTorchでSliced Wasserstein Distance (SWD)を実装してみました。オリジナルの実装はNumpyですが、これはPyTorchで実装しているので、GPU上で計算することができます。本来はGANの生成画像を評価するためのものですが、画像の分布不一致を見るためにも使うことができます。 - [PyTorchで画像を小さいパッチに切り出す方法](https://blog.shikoan.com/pytorch-extract-patches/) - PyTorchで1枚の画像を複数の小さい画像(パッチ)に切り出す方法を紹介します。TensorFlowだとtf.image.extract_patchesにあたる処理です。 - [Numpyだけで複数の画像をタイルし1つの画像にまとめる方法](https://blog.shikoan.com/numpy-tile-images/) - 「torchvision.utilsのmake_gridやテンソルをタイルして保存するのって便利だよね。でも、いちいちこのためにPyTorchのテンソルに変えるのって面倒だよね」ということで同じことをNumpyでも実装してみました。Numpy配列の扱い方を工夫すればいけます。 - [PyTorchでガウシアンピラミッド+ラプラシアンピラミッド(Gaussian/Laplacian Pyramid)](https://blog.shikoan.com/pytorch-laplacian-pyramid/) - PG-GANの論文で、SWDが評価指標として出てきたので、その途中で必要になったガウシアンピラミッド、ラプラシアンピラミッドをPyTorchで実装してみました。これらのピラミッドはGAN関係なく、画像処理一般で使えるものです。応用例として、ラプラシアンブレンドもPyTorchで実装しています。 - [OpenCVのsubtractについての小ネタ](https://blog.shikoan.com/opencv-subtract/) - OpenCVのsubtractと通常のNumpyの引き算の差が気になったのでメモ。実際に試してみました。 - [画像のピラミッドを1枚の画像として出力するサンプル](https://blog.shikoan.com/image-pyramid-concat/) - 同一画像で繰り返し半分に縮小しながら積み重ねていく操作(ピラミッド)が必要になったので、ピラミッドを1枚の画像として出力するサンプルを作ってみました。 - [PyTorchでConvolutionフィルターをやる(エッジ検出やアンシャープマスク)](https://blog.shikoan.com/pytorch-edge-unsharp/) - PyTorchでPILのConvolutionフィルター(エッジ検出やアンシャープマスク)をやりたくなったので、どう実装するか考えてみました。 - [[論文メモ]Self-Attention Generative Adversarial Networks(SA-GAN)](https://blog.shikoan.com/sagan-paper/) - SA-GAN(Self attention GAN)の論文を読んで実装したので、自分用メモとして書いておきます。 - [ffmpeg-pythonで大量の動画(tsファイル)を結合してmp4化する方法](https://blog.shikoan.com/ffmpeg-python-concat/) - ごにょごにょしてきた細切れのTSファイルを結合したいときに使えるテクニック。ffmpegの例はいくつか出てきましたが、Pythonラッパーのffmpegの例は全然なかったのでメモしていきます。 - [pytube+ffmpeg-pythonでYouTubeからダウンロードした動画の音声+動画を結合する方法](https://blog.shikoan.com/pytube-ffmepg-concat-video-audio/) - YouTubeをPythonで手軽にダウンロードできるライブラリとして、pytubeがあります。しかし、ダウンロードした動画は音声と動画が別々になっていて、動画だけ再生したら無音になっていたということがしばしばあります。他のツールは使わずに、ダウンロードから結合まですべてPythonで行うという例を紹介します。 - [PyTorchで双方向連結リストなデータ構造のモデルを作る](https://blog.shikoan.com/pytorch-linked-list/) - ディープラーニングのモデルには、訓練の途中でレイヤーを追加するなど特殊な訓練をするものがあります(Progressive-GANなど)。そのとき、モデルを「レイヤーやブロックの連結リスト」として定義しておくと見通しがよくなることがあります。その例を見ていきます。 - [PyTorchでGANの訓練をするときにrequires_grad(trainable)の変更はいるのかどうか](https://blog.shikoan.com/pytorch-requires-grad-gan/) - PyTorchでGANのある実装を見ていたときに、requires_gradの変更している実装を見たことがあります。Kerasだとtrainableの明示的な変更はいるんで、もしかしてPyTorchでもいるんじゃないかな?と疑問になったので、確かめてみました。 - [argparseに直接dictを読み込ませる怪しいやり方](https://blog.shikoan.com/argparse-dict/) - argparseにコマンドライン引数ではなく、ファイルから読み込んだdictをオーバーラップさせる方法を試してみました。本来のargparseの使い方ではない怪しいやり方ですが、JSONやyamlファイルとの連携が可能なので便利ではないかなと思います。 - [Pythonでzipを使ってJSONライクなdictをいい感じにforループで回す](https://blog.shikoan.com/json-dict-zip/) - Pythonでzip関数を使ってJSONライクな辞書(dict)を、いい感じにforループで要素ごとに抽出する例を解説します。ほぼワンライナーでできるので簡単です。 - [PyTorchで複数のGPUで訓練するときのSync Batch Normalizationの必要性](https://blog.shikoan.com/sync-batch-norm-pytorch/) - PyTorchにはSync Batch Normalizationというレイヤーがありますが、これが通常のBatch Normzalitionと何が違うのか具体例を通じて見ていきます。また、通常のBatch Normは複数GPUでData Parallelするときにデメリットがあるのでそれも確認していきます。 - [Self-attention GAN(SAGAN)を実装して遊んでみた](https://blog.shikoan.com/sagan/) - 前回の投稿では、Spectral Noramlizationを使ったGAN「SNGAN」を実装しましたが、それの応用系であるSelf-attention GAN「SAGAN」を実装して遊んでみました。CIFAR-10、STL-10、AnimeFace Dataset、Oxford Flowerを生成して確かめています。 - [画像分類で比較するBatch Norm, Instance Norm, Spectral Normの勾配の大きさ](https://blog.shikoan.com/normalization-gradients/) - GANの安定化のために、Batch Normalizationを置き換えるということが行われます。その置き換え先として、Spectral Norm、Instance Normなどが挙げられます。今回はGANではなく普通の画像分類の問題としてBatch Normを置き換えし、勾配のノルムどのように変わるかを比較します。 - [Spectral Normalization(SNGAN)を実装していろいろ遊んでみた](https://blog.shikoan.com/sngan/) - GANの安定化の大きなブレイクスルーである「Spectral Normalization」をPyTorchで実装していろいろ遊んでみました。従来のGANよりも多クラスの出力がかなりやりやすくなりました。確かにGANの安定化についてはものすごい効いているので、ぜひ皆さんも遊んでみてください。 - [SA-GANの実装から見る画像のSelf attention](https://blog.shikoan.com/sagan-self-attention/) - 自然言語処理でよく使われるSelf-attentionは画像処理においてもたびたび使われることがあります。自然言語処理のは出てきても、画像のはあまり情報が出てこなかったので、SAGANの実装から画像におけるSelf attentionを見ていきます。 - [PyTorchでweight clipping](https://blog.shikoan.com/pytorch-weight-clipping/) - WGANの論文見てたらWeight Clippingしていたので、簡単な例を実装して実験してみました。かなり簡単にできます。それを見ていきましょう。 - [GANでGeneratorの損失関数をmin(log(1-D))からmaxlog Dにした場合の実験](https://blog.shikoan.com/gan-g-loss-func/) - GANの訓練をうまくいくためのTipとしてよく引用される、How to train GANの中から、Generatorの損失関数をmin(log(1-D))からmaxlog Dにした場合を実験してみました。その結果、損失結果を変更しても出力画像のクォリティーには大して差が出ないことがわかりました。 - [pix2pix HDのCoarse to fineジェネレーターを考える](https://blog.shikoan.com/coarse-to-fine-model/) - pix2pix HDの論文を読んでいたら「Coarse to fineジェネレーター」という訓練の工夫をしていました。pix2pixはGANですが、このネットワークはNon-GANでも理屈上は使えるはずなので、この有効性をImage to imageの教師あり学習におけるU-Netの代用として調べてみました。 - [tf.tensordotで行列積を表現するための設定](https://blog.shikoan.com/tf-tensordot-matrix/) - TensorFlowのtensordotという関数はとても強力で、テンソルに対する行列積に対する計算をだいたい表現できます。しかし、軸の設定がいまいちよくわからなかったので、確かめてみました。 - [Pillowでグレースケール化するときに3チャンネルで出力するテクニック](https://blog.shikoan.com/pillow-gray-three-channels/) - カラー画像をグレースケール化すると1チャンネルの出力になりますが、カラー画像と同時に扱うと整合性からグレースケールでも3チャンネルで欲しいことがあります。Numpyのブロードキャストを使わずに簡単に3チャンネルで出力する方法を書きます。 - [画像のダウンサンプリングとPSNRの測定](https://blog.shikoan.com/image-downsampling-psnr/) - U-Netでどこまでの深さが効いているのかを考えるために、画像をダウンサンプリングし、アップサンプリングするという処理を行いPSNRを見ていきます。その結果、PSNRが15~20程度だと、U-Netの深い層が効かないかもしれないという状況を確認することができました。 - [PyTorchでOnehotエンコーディングするためのワンライナー](https://blog.shikoan.com/pytorch-onehotencoding/) - PyTorchでクラスの数字を0,1のベクトルに変形するOnehotベクトルを簡単に書く方法を紹介します。ワンライナーでできます。 - [KerasのLearningRateSchedulerとPyTorchのLambdaLRの微妙な違い](https://blog.shikoan.com/keras-pytorch-lr-scheduling/) - エポック後に学習率を減衰させる際、現在のエポックを引数として更新後の学習率を返す関数を与えると便利なことが多いです。この操作はKeras,PyTorchどちらでもできますが、扱い方が微妙に違うところがあります。ここを知らないでKerasの感覚のままPyTorchでやったらハマりまくったのでメモとして書いておきます。 - [PyTorchで複数出力があるモデルの出力の型について](https://blog.shikoan.com/pytorch-multiple-output/) - 出力が複数あるモデルの訓練というのは少し複雑なモデルだとよく出てきます。PyTorchでは複数出力のモデルの、出力の型はどうなっているでしょうか。それを見ていきます。中間層の値を取りたい場合も使えます。 - [pix2pixを1から実装して白黒画像をカラー化してみた(PyTorch)](https://blog.shikoan.com/pytorch_pix2pix_colorization/) - pix2pixによる白黒画像のカラー化を1から実装します。PyTorchで行います。かなり自然な色付けができました。pix2pixはGANの中でも理論が単純なのにくわえ、学習も比較的安定しているので結構おすすめです。 - [OpenCVで作成した動画がブラウザで正常に表示できない場合の解決法](https://blog.shikoan.com/opencv-h264/) - OpenCVで作成した動画をサイトで表示する場合、ローカルで再生できていても、ブラウザ上では突然プレビューがでなり、ハマることがあります。原因の特定が難しい現象ですが、動画を作成する際にH.264形式でエンコードするとうまくいきました。その方法を解説します。 - [PyTorchで行列(テンソル)積としてConv2dを使う](https://blog.shikoan.com/conv2d-matmul/) - PyTorchではmatmulの挙動が特殊なので、思った通りにテンソル積が取れないことがあります。この記事では、基本的な畳み込み演算である「Conv2D」を使い、Numpyのドット積相当の演算を行うという方法を解説します。 - [PyTorchでDCGANやってみた](https://blog.shikoan.com/pytorch-dcgan/) - PyTorchでDCGANをやってみました。MNISTとCIFAR-10、STL-10を動かしてみましたがかなり簡単にできました。訓練時間もそこまで長くはないので結構手軽に遊べます。 - [PyTorch/TorchVisionで複数の入力をモデルに渡したいケース](https://blog.shikoan.com/torchvision-multiple-inputs/) - PyTorch/TorchVisionで入力が複数あり、それぞれの入力に対して同じ前処理(transforms)をかけるケースを考えます。デフォルトのtransformsは複数対応していないのでうまくいきません。しかし、ラッパークラスを作り、それで前処理をラップするといい感じにできたのでその方法を解説します。 - [WarmupとData Augmentationのバッチサイズ別の精度低下について](https://blog.shikoan.com/warmup-data-augmentation-compare/) - 大きいバッチサイズで訓練する際は、バッチサイズの増加にともなう精度低下が深刻になります。この精度低下を抑制することはできるのですが、例えばData Augmentationのようなデータ増強・正則化による精度向上とは何が違うのでしょうか。それを調べてみました。 - [画像をただ並べたいときに使えるTorchVision](https://blog.shikoan.com/torchvision-image-tile/) - TorchVisionはPyTorchのためのライブラリですが、ディープラーニングを全く使わない、ただの画像処理でも有効に使うことができます。今回は、「画像をただ並べたいとき」にTorchvisionを使う方法を紹介します。KerasやTensorFlowといった他のディープラーニングからの利用可能です。 - [LightGBM(GPU版)をWindowsにインストールするのにハマった話](https://blog.shikoan.com/lightgbm-windows-install/) - LightGBMのGPU版のWindows10へのインストールが非常に面倒くさかったくさかったのでハマった点のメモを書いておきます。Boostライブラリの扱い方が大変でした。 - [Pandasのピボットテーブルを使って簡単に横並びの棒グラフを作る方法](https://blog.shikoan.com/pandas-pivot-barplot-2/) - Pandasのピボットテーブルを使うと横並びのグラフを数行のコードで作成することができます。matplotlib単体でもできますが、Pandasのほうがより楽にできます。その方法を解説します。 - [ML Study Jams中級編終わらせてきた](https://blog.shikoan.com/ml-study-jams-2/) - ML Study JamsというGoogle Cloudが提供している無料の学習プログラムの第二弾がオープンしています。今度は中級編が追加されており、全部終わらせてきたのでその報告と感想を書いていきたいと思います。 - [統計学や機械学習で使われる分散共分散行列、相関行列とグラム行列の関係](https://blog.shikoan.com/cov-corr-gram-matrix/) - TensorFlowなど分散共分散行列の計算関数が用意されていない場合は、分散共分散行列や相関行列を計算する際に自分で関数を定義しなければいけません。そこでグラム行列から、分散共分散行列、相関行列と派生させて計算する方法を理論を中心に見ていきます。 - [pipからインストールしたTorchVisionにImageNetがないときの対応](https://blog.shikoan.com/torchvision-imagenet/) - TorchVisionの公式ドキュメントにはImageNetが利用できるとの記述がありますが、pipからインストールするとImageNetのモジュール自体がないことがあります。TorchVisionにImageNetのモジュールを手動でインストールする方法を解説します。 - [Pillow/PIL ImageOpsチートシート](https://blog.shikoan.com/pillow-imageops/) - Pillow/PILの簡単かつ強力な処理を、実例とコードつきで解説します。この記事では2019年5月時点で用意されているImageOps以下の13個の処理を全て実行してみました。 - [クラス別のData Augmentationって意味ある?を調べてみた](https://blog.shikoan.com/classwise-data-augmentation/) - Data Augmentationで精度を上げることにお熱になっていると、「特定の足引っ張っているクラスだけAugmetationかけたらいいんじゃない?」的なことをやりたくなります。これを調べてみました。 - [データのお気持ちを考えながらData Augmentationする](https://blog.shikoan.com/manual-augmentation/) - Data Augmentationの「なぜ?」に注目しながら、エラー分析をしてCIFAR-10の精度向上を目指します。その結果、オレオレAugmentationながら、Wide ResNetで97.3%という、Auto Augmentとほぼ同じ(-0.1%)精度を出すことができました。 - [TensorFlow Data Validationを使ったお手軽で強力な探索的データ解析](https://blog.shikoan.com/tfdv-eda/) - 特にテーブルデータで、実際の分析に入る前に欠損値やデータの分布の把握といった、探索的データ解析(EDA)というのは重要なプロセスになります。TensorFlow Data Validationというツールを使うとそれがたった数行で簡単にできます。その方法を紹介します。 - [『モザイク除去本』、おまけ用アップロードスペース](https://blog.shikoan.com/techbook-mosaic-additional/) - 技術書典6で頒布した『DeepCreamPyで学ぶモザイク除去』について間に合わなかったページについて、後ほど公開するためのページです。本書を購入しなくても、無料で閲覧できます。 - [技術書典6・当日頒布情報](https://blog.shikoan.com/techbook6-news3/) - 技術書典6で私が頒布する本の当日頒布情報です。 - [技術書典6・頒布情報(第二報)](https://blog.shikoan.com/techbook6-news2/) - 技術書典6で私が頒布する本の情報についてお知らせします。お待たせ致しました。サンプル等はもうしばらくお待ち下さい。 - [技術書典6に出展します](https://blog.shikoan.com/techbook6-news1/) - 2019/4/14(日)に開催される技術書典6に出展します! なのなのさんのブース「N4+」で売り子をやります。「か72」になります。会場は池袋サンシャインシティ2F 展示ホールD(文化会館ビル2F)になります。 - [PythonのDict/OrderedDictの環境依存について](https://blog.shikoan.com/python-ordered-dict/) - PythonのDictionaryは順番が保証されません。なので、Dictionaryの順番を意識したいときは「OrderedDict」を使うというのが教科書的な解決方法でした。しかし、Python3.7(言語仕様化されていない状態なら3.6)からDictの順番が保証されるようになったとのことです。その環境依存について - [note開設のお知らせ](https://blog.shikoan.com/note-open/) - 本日noteを開設いたしました。 https://note.mu/koshian2 これは自分の記事をより多くの方々に読んでいただき、新たな読者の開拓を図るためであります。 - [Scikit-learnのROC/AUCのy_predのスケールについて](https://blog.shikoan.com/sklearn-roc-scale/) - SklearnのROC曲線/AUCスコアのy_pred側のスケールは実は0~1でなくてもよかったという話。0~1以外の値を放り込んでもちゃんと計算できるか確かめてみました。 - [ML Study Jamsを全部終わらせてきたのでその感想を書いてみる](https://blog.shikoan.com/ml-study-jams/) - ML Study JamsというGoogle Cloudが提供している無料の学習プログラムが期間限定でオープンしています。それを全部終わらせてきたのでその報告と感想を書いていきたいと思います。 - [ディープラーニング=最小二乗法のどこがダメなのか解説する](https://blog.shikoan.com/deeplearning-is-not-ols/) - あるニュース記事で、ディープラーニング=最小二乗法で三次関数なんていう「伝説の画像」が出回っていたので、それに対して突っ込みつつ、非線形関数という立場からディープラーニングの本当の表現の豊かさを見ていきたいと思います。 - [TPUでも大きなバッチサイズに対して精度を出す](https://blog.shikoan.com/tpu-bigbatch/) - TPUでは大きなバッチサイズを適用することが訓練の高速化につながりますが、これは精度と引き換えになることがあります。大きなバッチサイズでも精度を出す方法を論文をもとに調べてみました。 - [TPUで学習率減衰させる方法](https://blog.shikoan.com/tpu-learning-rate-decay/) - TPUで学習率減衰したいが、TensorFlowのオプティマイザーを使うべきか、tf.kerasのオプティマイザーを使うべきか、あるいはKerasのオプティマイザーを使うべきか非常にややこしいことがあります。TPUで学習率を減衰させる方法を再現しました。 - [Affinity LossをCIFAR-10で精度を求めてひたすら頑張った話](https://blog.shikoan.com/affinity-loss-cifar/) - 不均衡データに対して有効性があると言われている損失関数「Affinity loss」をCIFAR-10で精度を出すためにひたすら頑張った、というひたすら泥臭い話。条件10個試したらやっと精度を出すためのコツみたいなのが見えてきました。 - [転移学習でネットワーク内でアップサンプリングする方法(Keras)](https://blog.shikoan.com/transfer-inner-upsampling/) - 転移学習でインプットのサイズを揃えなければいけないことがありますが、これをRAM(CPU)上でやるとメモリが不足することがあります。転移学習の重みをそのまま使い、事前にアップサンプリングレイヤーを差し込む方法を紹介します。 - [TensorFlow/Kerasでネットワーク内でData Augmentationする方法](https://blog.shikoan.com/tensorflow-keras-network-augmentation/) - NumpyでData Augmentationするのが遅かったり、書くの面倒だったりすることありますよね。今回はNumpy(CPU)ではなく、ニューラルネットワーク側(GPU、TPU)でAugmetationをする方法を見ていきます。 - [[Python]OpenCVで画像を歪ませる方法](https://blog.shikoan.com/opencv-distortion/) - PythonでOpenCVを使い画像を歪ませる方法を考えます。アフィン変換というちょっと直感的に理解しにくいことをしますが、慣れればそこまで難しくはありません。ディープラーニングのData Augmentationにも使えます。 - [[Python]OpenCVのアフィン変換でAssertion failed](https://blog.shikoan.com/opencv-affine-failed/) - OpenCVのアフィン変換のgetAffineTransformで、起点と終点の行列をちゃんと正しいshapeで指定しているのにもかかわらず「(-215:Assertion failed)」とエラーになってしまいました。かなり難解なエラーだったので、原因を探ってみました。 - [Google ColabのTPUでメッセージがうるさいときにやること](https://blog.shikoan.com/google-colab-tpu-message-off/) - Google ColabのTPUを使っているとえらいメッセージが表示されて、うるさいときがあります。そんなときにメッセージを消す裏技を発見したので書いていきたいと思います。 - [条件に応じた配列の要素の抽出をTensorFlowで行う](https://blog.shikoan.com/tensorflow-array-selecting/) - Numpyで条件を与えて、インデックスのスライスによって配列の要素を抽出する、というようなケースはよくあります。これをTensorFlowのテンソルでやるのにはどうすればいいのでしょうか?それを見ていきます。 - [Kerasのジェネレーターでサンプルが列挙される順番について](https://blog.shikoan.com/keras-generator-order/) - Kerasの(カスタム)ジェネレーターでサンプルがどの順番で呼び出されるか、1ループ終わったあとにどういう処理がなされるのか調べてみました。ジェネレーターを自分で定義するとモデルの表現の幅は広がるものの、バグが起きやすくなるので「本当に順番が保証されるのか」や「ハマりどころ」を確認します。 - [TensorFlowでコサイン類似度を計算する方法](https://blog.shikoan.com/tensorflow-cosine-similarity/) - TensorFlowで損失関数や距離関数に「コサイン類似度」を使うことを考えます。Scikit-learnでは簡単に計算できますが、同様にTensorFlowでの行列演算でも計算できます。それを見ていきます。 - [TensorFlowで値のソートをする方法](https://blog.shikoan.com/tensorflow-sort/) - TensorFlowでNumpyのnp.sortやnp.argsortのようなソートを行うことを考えます。一般にTensorFlowで値のソートというと、自動微分もあわさって難しいように思えますが、実はちゃんとソートできます。うまくやればKerasからも使うことができます。 - [TPUでアップサンプリングする際にエラーを出さない方法](https://blog.shikoan.com/tpu-upsampling/) - Keras/TensorFlowではUpsampling2Dというレイヤーを使ってアップサンプリングができますが、このレイヤーがTPUだとエラーを出すので解決法を探しました。自分でアップサンプリングレイヤーを定義するとうまく行ったので、それを見ていきます。 - [Qiita開始1年で2000(訂正:3000)Contribution達成してわかったこと](https://blog.shikoan.com/qiita-anniversary/) - 12/21にQiitaが2000Contribution(いいね)を達成しました。正直Qiita始めたときはここまで行くとは思っていなかったので、素直に驚いているとともに、まずは応援してくださった方にありがとう言いたいです。 - [PythonのMessagePack-Numpyで独自のクラスをシリアライズする方法](https://blog.shikoan.com/messagepack-numpy-custom-class/) - MessagePackを使ってシリアライズを高速化したかったのですが、独自のクラスやネストされたオブジェクトについてシリアル化する方法が全然なかったので調べてみました。Numpyのシリアライズも使えるMessagePackの拡張版、MessagePack-Numpyを使って確かめます。 - [keras_preprocessingを使ってお手軽に画像を回転させる方法](https://blog.shikoan.com/keras_preprocessing_rotate_image/) - Data Augmentationで画像を回転させたいことがあります。画像の回転は一般に「アフィン変換」と呼ばれる操作で、Numpy配列に対して1から書くとかなりめんどいのです。Kerasが裏で使っているkeras_preprocessingというモジュールを使うと簡単にできることがわかったので紹介します。 - [Kerasでメモリ使用量を減らしたかったらmax_queue_sizeを調整しよう](https://blog.shikoan.com/keras_max_queue/) - Kerasで大きめの画像を使ったモデルを訓練していると、メモリが足りなくなるということがよくあります。途中処理の変数のデータ型(np.uint8)を変えるのだけではなく、max_queue_sizeの調整をする必要があることがあります。それを見ていきます。 - [One-Hotエンコーディング(ダミー変数)ならPandasのget_dummies()を使おう](https://blog.shikoan.com/pandas-get-dummies/) - 特徴量処理(特徴量エンジニアリング)でよく使う処理として、「A,B,C」「1,2,3」といったカテゴリー変数をOne-Hotベクトル化するというのがあります。SkelarnのOneHotEncoderでもできますが、Pandasのget_dummies()を使うと、もっと統合的にすることができます。 - [PandasのDataFrameでグループ別にサンプルをN個抜き出す方法](https://blog.shikoan.com/pandas-groupby-head/) - 「PandasでGroupbyでグルーピングしたはいんだけど、そこからグループ別にサンプルを1個、2個…と抜き出す、SQLでよくやるやつってどうやるんだっけ?」ということが気になったので、調べました。ちゃんとした方法があります。 - [SIGNATEの個人情報要求がすごかったので経済産業省に電話した話](https://blog.shikoan.com/meti-ask/) - SIGNATEというデータサイエンスのコンペティションサイトがある。しかし登録時にすごく個人情報を要求していており、「なんでだろう?」ととても疑問だったので、コンペ主催者の経済産業省に問い合わせてみた。その話を書いていきたい。 - [KerasのCallbackを使って継承したImageDataGeneratorに値が渡せるか確かめる](https://blog.shikoan.com/keras-callback-to-generator/) - Kerasで前処理の内容をエポックごとに変えたいというケースがたまにあります。これを実装するとなると、CallbackからGeneratorに値を渡すというコードになりますが、これが本当にできるかどうか確かめてみました。 - [Pythonでxy座標上の2点間の距離をforループを使わずに計算する方法](https://blog.shikoan.com/distance-without-for-loop/) - 機械学習でカーネル法やらクラスタリングをやっていると、何かと「2サンプル(点)間の距離」を計算することが多いです。ここではより一般的に「Pythonで2点間の距離をforループを使わずに行列(テンソル)計算として求める方法」を見ていきます。 - [Numpyの配列に対して「最も多く存在する値」を求める方法](https://blog.shikoan.com/numpy-most-frequent-value/) - アンサンブル学習などで、Numpyの配列のある軸に対して「最も多く存在する値」を求めたい、つまり「多数決」をしたいことがあります。その方法を見ていきます。 - [KerasのModelCheckpointのsave_best_onlyは何を表すのか?](https://blog.shikoan.com/keras-model-checkpoint-save-best-only/) - Kerasには「モデルの精度が良くなったときだけ係数を保存する」のに便利なModelCheckpointというクラスがあります。ただこのsave_best_onlyがいまいち公式の解説だとピンとこないので調べてみました。 - [Kerasで重みを共有しつつ、必要に応じて入力の位置を変える方法](https://blog.shikoan.com/keras-change-inputs-on-shared-layer/) - Kerasで訓練させて、途中から新しく入力を作ってそこからの出力までの値を取りたいということがたまにあります。例えば、Variational Auto Encoderのサンプリングなんかそうです。このあまり書かれていないのでざっとですが整理しておきます。 - [Kerasでランドマーク検出用の損失関数を作る上でのポイント](https://blog.shikoan.com/keras-landmark-loss-function/) - ランドマーク検出やオブジェクト検出では、yに最初に物体やランドマークが存在する確率をおいて、それ以降に座標を配置するというようなデータ構造を取ります。その場合、カスタム損失関数を定義する必要が出てきますが、どのように定義するれば良いでしょうか。それを見ていきます。 - [Kerasのバックエンドで「○○以上☓☓以下」を計算する方法](https://blog.shikoan.com/keras-backend-greater-less/) - Kerasのバックエンド関数を使ったときに「○○以上☓☓以下」を求めたい場合があります。しかし、KerasではAndのような論理演算をすると少し困ることがあります。その方法を解説します。 - [PCA Color Augmentationを拡張してTensorFlow/Keras向けに実装した](https://blog.shikoan.com/pca-color-augmentation/) - PCA Color AugmentationはAlexNetの論文に示された画像向けのData Augmentationですが、画像用だけではなく、テンソルの固有値分解をすることで構造化データに対しても使えるようにしてみました。これの解説と効果を書きます。 - [Pythonで画像のカラーヒストグラムを簡単に表示する方法](https://blog.shikoan.com/python-image-colorhist/) - 画像で赤、緑、青の画素がどのような分布になっているかという「カラーヒストグラム」を見たいことがあります。しかしいざ探すとツールが少ないのです。Pythonならほんの数行で出せます。 - [TensorFlow/Kerasでの分散共分散行列・相関行列、テンソル主成分分析の実装](https://blog.shikoan.com/tensorflow-varcov-pca/) - TensorFlowでは分散共分散行列や主成分分析用の関数が用意されていません。訓練を一切せずにTensorFlowとKeras関数だけを使って、分散共分散行列、相関行列、主成分分析を実装します。最終的にはカテゴリー別のテンソル主成分分析を作れるようにします。 - [TensorFlow/Kerasでグラム行列(テンソル)を計算する方法](https://blog.shikoan.com/tensorflow-gram-matrix/) - TensorFlowで分散や共分散が絡む演算を定義していると、グラム行列を計算する必要が出てくることがあります。行列はまだよくてもテンソルのグラム行列はどう計算するでしょうか?今回はテンソルの共分散計算に行く前に、その前提のテンソルのグラム行列の計算から見ていきます。 - [Numpyの配列をN個飛ばしで列挙する簡単な方法](https://blog.shikoan.com/numpy-skip-enumerate/) - Numpyの配列から奇数番目、偶数番目の要素を取り出したいときが稀によくあります。インデックスの配列を定義する必要があるのかなと思いますが、とても簡単な方法があります。それを見ていきましょう。 - [Kerasで複数のラベル(出力)があるモデルを訓練する](https://blog.shikoan.com/keras-multiple-label-output/) - Kerasで複数のラベル(出力)のあるモデルを訓練することを考えます。ここでの複数のラベルとは、あるラベルとそれに付随する情報が送られてきて、それを同時に損失関数で計算する例です。これを見ていきましょう。 - [Numpyだけでサクッと画像を拡大する方法](https://blog.shikoan.com/numpy-upsampling-image/) - Numpyだけで画像をサクッと拡大する方法を紹介します。OpenCVやPillowを使うまでもないな、というようなときに便利な方法です。ニューラルネットワークでインプットのサイズを調整するときも使えます。 - [Python(Numpy)で画像を水平反転する方法:Data Augmentation向け](https://blog.shikoan.com/numpy-horizontal-flip/) - OpenCVを使わずに単純に画像を左右反転(水平反転)する方法を考えます。ディープラーニングでデータのジェネレーターを自分で実装した場合、Data Augmentationを組み込む際にも必要になります。それを見ていきましょう。 - [Kerasで転移学習用にレイヤー名とそのインデックスを調べる方法](https://blog.shikoan.com/keras-get-layer-index/) - Kerasで転移学習をするときに、学習済みモデルのレイヤーの名前と、そのインデックス(何番目にあるかということ)の対応を知りたいことがあります。その方法を解説します。 - [Kerasで評価関数にF1スコアを使う方法](https://blog.shikoan.com/keras-f1score/) - Kerasで訓練中の評価関数(metrics)にF1スコアを使う方法を紹介します。Kerasのmetricsに直接F1スコアの関数を入れると、バッチ間の平均計算により、調和平均であるF1スコアは正しい値が計算されません。そこだけ注意が必要です。 - [Google Colaboratoryからファイルを簡単にGoogle Driveへ書き込む方法](https://blog.shikoan.com/google-colab-drive-save/) - Google ColaboratoryからGoogle Driveに保存する方法はいくつかあるのですが、最近改良が入って簡単に書き込めるようになっていました。その方法を見ていきます。 - [Kerasで損失関数に複数の変数を渡す方法](https://blog.shikoan.com/keras-loss-function-multiple-arguments/) - Kerasで少し複雑なモデルを訓練させるときに、損失関数にy_true, y_pred以外の値を渡したいときがあります。クラスのインスタンス変数などでキャッシュさせることなく、ダイレクトに損失関数に複数の値を渡す方法を紹介します。 - [KerasでSTL-10を扱う方法](https://blog.shikoan.com/keras-stl10/) - 「STL-10」というCIFAR-10に似た形式ながら、高画質かつ教師なし学習にも応用できる便利なデータセットがあります。PyTorchではtorchvisionを使うと簡単に読み込めるのですが、Kerasではデフォルトで容易されていないので自分で読み込むコードを書かないといけません。それを見ていきます。 - [Pandasで複数の列を値をもとに、新しい列を任意の関数で定義する方法](https://blog.shikoan.com/pandas-newcolumn-lambda/) - Pandasで、「列A(文字列)と列B(数字)」を文字列として結合し、新しい列を定義するという操作をしたかったのですが、思ったよりも情報がなくハマったので解説していきたいと思います。 - [[ABC006] C - スフィンクスのなぞなぞ](https://blog.shikoan.com/abc006-c/) - ディープラーニングの訓練中暇なので、AtCoderの過去問解いてみることにしました。最初に取り上げるのはABC006のC問題「スフィンクスのなぞなぞ」です。一見、再帰やメモ化を匂わせるような問題ですが、実はそれを使わなくてもスマートに解ける面白い問題です - [[ABC007] C - 幅優先探索(迷路の探索)](https://blog.shikoan.com/abc007-c/) - AtCoder Beginner Contest(ABC)から幅優先探索を使って迷路の最短距離を計算する問題です。幅優先探索のチュートリアルのような問題で、誘導に従って解いていけば必ず理解できるとても良い問題です。C#でのコードを書いていきます。 - [ColabのTPUでNASNet Largeを訓練しようとして失敗した話](https://blog.shikoan.com/tpu-nasnet-large-failed/) - ColabのTPUはとてもメモリ容量が大きく、計算が速いのでモデルのパラメーターを多くしてもそこまでメモリオーバーor遅くなりません。ただし、あまりにモデルが深すぎると訓練の初期設定で失敗することがあります。NASNet Largeを訓練しようとして発生しました。これを見ていきます。 - [CIFAR-10/100のバイナリを画像ファイルに書き出す方法](https://blog.shikoan.com/cifar-to-image-file/) - CIFAR-10/100は画像分類として頻繁に用いられるデータセットですが、たまに画像ファイルでほしいことがあります。配布ページにはNumpy配列をPickleで固めたものがあり、画像ファイルとしては配布されていないので個々のファイルに書き出す方法を解説していきます。 - [Google ColabのTPU環境でmodel.fitのhistoryが消える現象](https://blog.shikoan.com/tpu-modelfit-history-lost/) - Google ColabのTPU環境でmodel.fitしたときに、通常の環境で得られるhistory(誤差や精度のログ)が消えていることがあります。その対応法を示します。 - [tensorflow.kerasでKeras方式のhdf5で重みを保存する方法](https://blog.shikoan.com/tensorflow-save-weights-hdf5/) - 従来のKerasで係数を保存すると「hdf5」形式で保存されたのですが、TPU環境などでTensorFlowのKerasAPIを使うと、TensorFlow形式のチェックポイントまるごと保存で互換性の面で困ったことがおきます。従来のKerasのhdf5形式で保存する方法を紹介します。 - [ResNetをKeras(TensorFlow, MXNet)、Chainer、PyTorchで比較してみる](https://blog.shikoan.com/resnet-multiple-framework/) - 前からディープラーニングのフレームワークの実行速度について気になっていたので、ResNetを題材として比較してみました。今回比較するのはKeras(TensorFlow、MXNet)、Chainer、PyTorchです。ディープラーニングのフレームワーク選びの参考になれば幸いです。 - [Google ColabのTPUでResNetのベンチマークを取ってみた](https://blog.shikoan.com/colab-tpu-resnet-benchmarks/) - Google ColaboratoryでTPUが使えるようになりましたが、さっそくどのぐらい速いのかベンチマークを取ってみましょう。以前やったResNetのベンチマークを使います。 - [Numpyの配列のみを操作して四角形を描画する(Numpyの画像処理)](https://blog.shikoan.com/numpy-fill-rectangle/) - Numpyの画像処理です。Numpyの配列のみを操作して、画面上に四角形を描画してみます。Numpyの画像処理は出力結果の合成のときにたまに使う割には若干独特なので注意が必要です。 - [pickle.loadで読み込み時にUnicodeDecodeError](https://blog.shikoan.com/pickle-load-unicode-decode-error/) - pickle.dump()で保存は上手く行ったのに、それを読み込むとエラー吐いて原因がよくわからない……それで一時間近くハマったという恐怖な話。 - [BrestCancerデータセットをCNNで分類する](https://blog.shikoan.com/brest-cancer-cnn/) - 構造化データを畳み込みニューラルネットワーク(CNN)で分析することを考えます。BrestCancerデータセットはScikit-learnに用意されている、乳がんが良性か悪性かの2種類を分類する典型的な構造化データです。サンプル数569、データの次元30の典型的な構造化データです。 - [zipに固められた複数のpickleファイルを解凍なしで読み込む](https://blog.shikoan.com/zip-extract-multiple-pickle/) - Zipファイルに固められたファイル(pickleで圧縮した複数のファイル)をファイルに書き出すことなく読み込む方法を見ていきます。ディープラーニングで複数回訓練してその結果をまとめてZipに保存する、ということをよくやるので忘備録に。 - [Channelwise Variational AutoEncoder(失敗)](https://blog.shikoan.com/channelwise-vae-failure/) - Variational Auto Encoder(VAE)を試していて、カラー画像は上手く行かなくてもグレースケール画像ならそこそこうまく行ったので、「じゃあチャンネル単位にVAEかけて後で結合すればカラーでもきれいにいくんじゃね?」と安直な発想で試してみたら失敗しました。それの記録を書きました。 - [PyTorchでのConvTranspose2dのパラメーター設定について](https://blog.shikoan.com/pytorch-convtranspose2d/) - VAE(Variational Auto Encoder)やGAN(Generative Adversarial Network)などで用いられるデコーダーで畳み込みの逆処理(Convtranspose2d)を使うことがあります。このパラメーター設定についてハマったので解説します。 - [PyTorchでサイズの異なる画像を読み込む方法](https://blog.shikoan.com/pytorch-load-different-size-image/) - 実際の画像判定では、MNISTやCIFARのようにサイズが完全に整形されたデータはなかなか少ないです。例えばサイズが横幅は一定でも縦幅が異なっていたりするケースがあります。訓練画像間でサイズが異なる場合、そのまま読み込みするとエラーになります。その解決法を示します。 - [Numpyのみでグループ別に集計し平均を出す方法(for文、Pandasなし)](https://blog.shikoan.com/numpy-grouping-no-pandas/) - Numpy配列をグループ別に集計するときに、大抵Pandasを使うのですが、Numpyだけで集計するのってできるのかな?どうやるんだろうという話です。答えは「できます」。one-hotベクトルを使って集計する方法を紹介していきます。 - [Pandasのpivotを使ってデータを集計し、横並びの棒グラフで表示する方法](https://blog.shikoan.com/pandas-pivot-barplot/) - Pandasのデータフレームを集計して、横並びの棒グラフで表示したいときがあります。その方法を紹介していきます。Pivotを使うと簡単にできます。 - [Chainerで画像の前処理やDataAugmentationをしたいときはDatasetMixinを継承しよう](https://blog.shikoan.com/chainer-preprocess-datasetminix/) - Chainerにはデフォルトでランダムクロップや標準化といった画像の前処理用の関数が用意されていません。別途のChainer CVというライブラリを使う方法もありますが、chainer.dataset.DatasetMixinを継承させて独自のデータ・セットを定義する方法を紹介します。 - [KerasのLearningRateSchedulerを使って学習率を途中で変化させる](https://blog.shikoan.com/keras-learning-rate-decay/) - KerasにはLearningRateSchedulerという学習の途中で学習率を変更するための簡単なコールバックがあります。これを用いてCIFAR-10に対して、途中で学習率を変化させながらSGDとAdamで訓練する方法を解説します。 - [Kerasに組み込まれているResNet50の実装](https://blog.shikoan.com/keras-resnet50/) - Kerasに組み込まれているResNet50のsummaryを表示します - [Kerasに組み込まれているDenseNet(121/169/201)の実装](https://blog.shikoan.com/keras-densenet/) - Kerasに組み込まれているDenseNet-121, DenseNet169, DenseNet-201のsummaryを表示します - [Kerasに組み込まれているNASNet(Large)の実装](https://blog.shikoan.com/keras-nasnet-large/) - Kerasに組み込まれているNASNet(Large)のsummaryを表示します - [Kerasに組み込まれているNASNet(Mobile)の実装](https://blog.shikoan.com/keras-nasnet-mobile/) - Kerasに組み込まれているNASNet(Mobile)のsummaryを表示します - [Kerasに組み込まれているMobileNetの実装](https://blog.shikoan.com/keras-mobilenet/) - Kerasに組み込まれているMobileNet/MobileNetV2のsummaryを表示します - [Kerasに組み込まれているInceptionResNetV2の実装](https://blog.shikoan.com/keras-inceptionresnetv2/) - Kerasに組み込まれているInceptionResNetV2のsummaryを表示します - [Kerasに組み込まれているInceptionV3の実装](https://blog.shikoan.com/keras-inceptionv3/) - Kerasに組み込まれているInceptionV3のsummaryを表示します - [Kerasに組み込まれているVGG16/19の実装](https://blog.shikoan.com/keras-vgg/) - Kerasに組み込まれているVGG16/19のsummaryを表示します - [Kerasに組み込まれているXceptionの実装](https://blog.shikoan.com/keras-xception/) - Kerasに組み込まれているXceptionのsummaryを表示します - [Kerasでモデルのsummaryをテキストとして保存する方法](https://blog.shikoan.com/keras-summary-save-to-text/) - Kerasで「plot_modelを使えばモデルの可視化ができるが、GraphViz入れないといけなかったり、セットアップが面倒くさい!model.summary()のテキストをファイル保存で十分だ!」という場合に使えるテクニックです。 - [Google Colaboratoryで保存したKerasのモデルを読み込むとValueError](https://blog.shikoan.com/keras-load-model-from-colab/) - Google Colaboratory(Colab)上のKerasでh5形式で保存したモデルをダウンロードして、load_modelするとTypeErrorが発生して読み込めないことがあります。その解決法を示します。 - [Kernel-PCAのexplained_variance_ratioを求める方法](https://blog.shikoan.com/kernel-pca-explained-variance-ratio/) - sklearnのPCAにはexplained_variance_ratio_という、次元を削減したことでどの程度分散が落ちたかを確認できる値があります。Kernel-PCAでは特徴量の空間が変わってしまうので、この値は存在しません。ただハイパーパラメータのチューニングに便利なので、説明分散比を求める方法を書きます。 - [pyplotの散布図グラフでマーカーに文字を使う方法](https://blog.shikoan.com/pyplot-scatter-string-marker/) - Pythonのグラフ(matplotlib.pyplot)で散布図をプロットする際に、マーカーに「a, b, c」のような文字を用いる方法を解説します。 - [ニューラル協調フィルタリングで特徴量抽出して、アニメ同士の足し算・引き算をやってみる](https://blog.shikoan.com/ncf-myanimelist-add/) - ニューラル協調フィルタリングでMyAnimeListのレコメンドデータから抽出した特徴量を用いて、Word2Vecの「王+女-男=女王」のような、アニメ単位での足し算や引き算(「Tiger&Bunny」+「けいおん」-「Free!」)ができるのを確認します。 - [Kerasでカスタム損失関数を用いたモデルをロードするとValueError](https://blog.shikoan.com/keras-load-custom-loss-model/) - Kerasで損失関数を独自に定義したモデルを保存した場合、load_modelで読み込むと「ValueError: Unknown loss function」とエラーになることがあります。その解決法を示します。 - [pandasでグループ別に統計量やヒストグラムを表示する方法](https://blog.shikoan.com/pandas-groupby-describe/) - pandasのDataFrameをgroupbyでグルーピングしながら、describeで基本統計量を表示し、ヒストグラムでプロットする便利な方法をお伝えします。 ## 固定ページ - [Privacy Policy](https://blog.shikoan.com/privacy-policy/) - 私たちについて 私たちのサイトアドレスは https://blog.shikoan.com です。 このサイト - [Sample Page](https://blog.shikoan.com/sample-page/) - This is an example page. It's different from a blog pos ## カテゴリー - [Uncategorized](https://blog.shikoan.com/category/uncategorized/) - [Python](https://blog.shikoan.com/category/python/) - [pandas](https://blog.shikoan.com/category/python/pandas-python/) - [Keras](https://blog.shikoan.com/category/python/keras/) - [DeepLearning](https://blog.shikoan.com/category/deeplearning/) - [pyplot](https://blog.shikoan.com/category/python/pyplot/) - [scikit-learn](https://blog.shikoan.com/category/python/scikit-learn/) - [chainer](https://blog.shikoan.com/category/python/chainer/) - [Numpy](https://blog.shikoan.com/category/python/numpy/) - [PyTorch](https://blog.shikoan.com/category/python/pytorch/) - [TensorFlow](https://blog.shikoan.com/category/python/tensorflow/) - [競プロ](https://blog.shikoan.com/category/競プロ/) - [AtCoder](https://blog.shikoan.com/category/競プロ/atcoder/) - [その他](https://blog.shikoan.com/category/その他/) - [OpenCV](https://blog.shikoan.com/category/python/opencv/) - [技術書](https://blog.shikoan.com/category/技術書/) - [Pillow](https://blog.shikoan.com/category/python/pillow/) - [LightGBM](https://blog.shikoan.com/category/python/lightgbm/) - [ffmpeg](https://blog.shikoan.com/category/python/ffmpeg/) - [Web開発](https://blog.shikoan.com/category/web開発/) - [Docker](https://blog.shikoan.com/category/python/docker/) - [LLM](https://blog.shikoan.com/category/llm/) - [画像生成](https://blog.shikoan.com/category/画像生成/) - [AWS](https://blog.shikoan.com/category/aws/) - [Streamlit](https://blog.shikoan.com/category/python/streamlit/) - [Kubernetes](https://blog.shikoan.com/category/kubernetes/) - [GitHub](https://blog.shikoan.com/category/github/) ## タグ - [データ可視化](https://blog.shikoan.com/tag/データ可視化/) - [集計](https://blog.shikoan.com/tag/集計/) - [デバッグ](https://blog.shikoan.com/tag/デバッグ/) - [Keras](https://blog.shikoan.com/tag/keras/) - [レコメンド](https://blog.shikoan.com/tag/レコメンド/) - [アニメ](https://blog.shikoan.com/tag/アニメ/) - [協調フィルタリング](https://blog.shikoan.com/tag/協調フィルタリング/) - [次元削減](https://blog.shikoan.com/tag/次元削減/) - [主成分分析](https://blog.shikoan.com/tag/主成分分析/) - [scikit-learn](https://blog.shikoan.com/tag/scikit-learn/) - [学習済みモデル](https://blog.shikoan.com/tag/学習済みモデル/) - [学習率](https://blog.shikoan.com/tag/学習率/) - [DeepLearning](https://blog.shikoan.com/tag/deeplearning/) - [前処理](https://blog.shikoan.com/tag/前処理/) - [DataAugmentation](https://blog.shikoan.com/tag/dataaugmentation/) - [ResNet](https://blog.shikoan.com/tag/resnet/) - [ベンチマーク](https://blog.shikoan.com/tag/ベンチマーク/) - [VAE](https://blog.shikoan.com/tag/vae/) - [GAN](https://blog.shikoan.com/tag/gan/) - [生成モデル](https://blog.shikoan.com/tag/生成モデル/) - [PyTorch](https://blog.shikoan.com/tag/pytorch/) - [失敗](https://blog.shikoan.com/tag/失敗/) - [zipfile](https://blog.shikoan.com/tag/zipfile/) - [pickle](https://blog.shikoan.com/tag/pickle/) - [CNN](https://blog.shikoan.com/tag/cnn/) - [画像処理](https://blog.shikoan.com/tag/画像処理/) - [損失関数](https://blog.shikoan.com/tag/損失関数/) - [ランドマーク検出](https://blog.shikoan.com/tag/ランドマーク検出/) - [TPU](https://blog.shikoan.com/tag/tpu/) - [Google Colaboratory](https://blog.shikoan.com/tag/google-colaboratory/) - [TensorFlow](https://blog.shikoan.com/tag/tensorflow/) - [HDF5](https://blog.shikoan.com/tag/hdf5/) - [CIFAR](https://blog.shikoan.com/tag/cifar/) - [ABC](https://blog.shikoan.com/tag/abc/) - [C#](https://blog.shikoan.com/tag/c/) - [C問題](https://blog.shikoan.com/tag/c問題/) - [STL10](https://blog.shikoan.com/tag/stl10/) - [F1スコア](https://blog.shikoan.com/tag/f1スコア/) - [転移学習](https://blog.shikoan.com/tag/転移学習/) - [小ネタ](https://blog.shikoan.com/tag/小ネタ/) - [Numpy](https://blog.shikoan.com/tag/numpy/) - [テンソル計算](https://blog.shikoan.com/tag/テンソル計算/) - [分散分析](https://blog.shikoan.com/tag/分散分析/) - [機械学習](https://blog.shikoan.com/tag/機械学習/) - [統計](https://blog.shikoan.com/tag/統計/) - [バックエンド](https://blog.shikoan.com/tag/バックエンド/) - [アンサンブル学習](https://blog.shikoan.com/tag/アンサンブル学習/) - [クラスタリング](https://blog.shikoan.com/tag/クラスタリング/) - [カーネル法](https://blog.shikoan.com/tag/カーネル法/) - [経済産業省](https://blog.shikoan.com/tag/経済産業省/) - [特徴量エンジニアリング](https://blog.shikoan.com/tag/特徴量エンジニアリング/) - [Qiita](https://blog.shikoan.com/tag/qiita/) - [OpenCV](https://blog.shikoan.com/tag/opencv/) - [シリアライザー](https://blog.shikoan.com/tag/シリアライザー/) - [MessagePack](https://blog.shikoan.com/tag/messagepack/) - [Siamese Network](https://blog.shikoan.com/tag/siamese-network/) - [バグ](https://blog.shikoan.com/tag/バグ/) - [アフィン変換](https://blog.shikoan.com/tag/アフィン変換/) - [エラー](https://blog.shikoan.com/tag/エラー/) - [最小二乗法](https://blog.shikoan.com/tag/最小二乗法/) - [Google Cloud](https://blog.shikoan.com/tag/google-cloud/) - [BigQuery](https://blog.shikoan.com/tag/bigquery/) - [音声認識](https://blog.shikoan.com/tag/音声認識/) - [自然言語処理](https://blog.shikoan.com/tag/自然言語処理/) - [AUC](https://blog.shikoan.com/tag/auc/) - [評価関数](https://blog.shikoan.com/tag/評価関数/) - [闇](https://blog.shikoan.com/tag/闇/) - [技術書典](https://blog.shikoan.com/tag/技術書典/) - [技術書](https://blog.shikoan.com/tag/技術書/) - [欠損値](https://blog.shikoan.com/tag/欠損値/) - [EDA](https://blog.shikoan.com/tag/eda/) - [TFDV](https://blog.shikoan.com/tag/tfdv/) - [Auto Augment](https://blog.shikoan.com/tag/auto-augment/) - [Random Erasing](https://blog.shikoan.com/tag/random-erasing/) - [Mixup](https://blog.shikoan.com/tag/mixup/) - [Pillow](https://blog.shikoan.com/tag/pillow/) - [CIFAR-10](https://blog.shikoan.com/tag/cifar-10/) - [PIL](https://blog.shikoan.com/tag/pil/) - [チートシート](https://blog.shikoan.com/tag/チートシート/) - [データセット](https://blog.shikoan.com/tag/データセット/) - [ImageNet](https://blog.shikoan.com/tag/imagenet/) - [TorchVision](https://blog.shikoan.com/tag/torchvision/) - [ML Study Jams](https://blog.shikoan.com/tag/ml-study-jams/) - [LightGBM](https://blog.shikoan.com/tag/lightgbm/) - [環境構築](https://blog.shikoan.com/tag/環境構築/) - [インストール](https://blog.shikoan.com/tag/インストール/) - [DCGAN](https://blog.shikoan.com/tag/dcgan/) - [MNIST](https://blog.shikoan.com/tag/mnist/) - [STL-10](https://blog.shikoan.com/tag/stl-10/) - [線形代数](https://blog.shikoan.com/tag/線形代数/) - [動画](https://blog.shikoan.com/tag/動画/) - [H.264](https://blog.shikoan.com/tag/h-264/) - [WordPress](https://blog.shikoan.com/tag/wordpress/) - [pix2pix](https://blog.shikoan.com/tag/pix2pix/) - [YouTube](https://blog.shikoan.com/tag/youtube/) - [pytube](https://blog.shikoan.com/tag/pytube/) - [動画処理](https://blog.shikoan.com/tag/動画処理/) - [U-Net](https://blog.shikoan.com/tag/u-net/) - [HingeLoss](https://blog.shikoan.com/tag/hingeloss/) - [Self Attention](https://blog.shikoan.com/tag/self-attention/) - [SNGAN](https://blog.shikoan.com/tag/sngan/) - [GAN安定化](https://blog.shikoan.com/tag/gan安定化/) - [Spectral Normalization](https://blog.shikoan.com/tag/spectral-normalization/) - [Instance Normalization](https://blog.shikoan.com/tag/instance-normalization/) - [SAGAN](https://blog.shikoan.com/tag/sagan/) - [Sync Batch Norm](https://blog.shikoan.com/tag/sync-batch-norm/) - [論文読み](https://blog.shikoan.com/tag/論文読み/) - [ffmpeg](https://blog.shikoan.com/tag/ffmpeg/) - [ブレンディング](https://blog.shikoan.com/tag/ブレンディング/) - [PGGAN](https://blog.shikoan.com/tag/pggan/) - [セマンティックセグメンテーション](https://blog.shikoan.com/tag/セマンティックセグメンテーション/) - [Squeeze and Excitation](https://blog.shikoan.com/tag/squeeze-and-excitation/) - [MICCAI](https://blog.shikoan.com/tag/miccai/) - [モザイク](https://blog.shikoan.com/tag/モザイク/) - [Pixel Shuffle](https://blog.shikoan.com/tag/pixel-shuffle/) - [スタイル変換](https://blog.shikoan.com/tag/スタイル変換/) - [技術書典8](https://blog.shikoan.com/tag/技術書典8/) - [モザイク除去](https://blog.shikoan.com/tag/モザイク除去/) - [Inpainting](https://blog.shikoan.com/tag/inpainting/) - [お知らせ](https://blog.shikoan.com/tag/お知らせ/) - [正規表現](https://blog.shikoan.com/tag/正規表現/) - [マークダウン](https://blog.shikoan.com/tag/マークダウン/) - [物体検出](https://blog.shikoan.com/tag/物体検出/) - [Skimage](https://blog.shikoan.com/tag/skimage/) - [RCNN](https://blog.shikoan.com/tag/rcnn/) - [CSS組版](https://blog.shikoan.com/tag/css組版/) - [PDF](https://blog.shikoan.com/tag/pdf/) - [日付](https://blog.shikoan.com/tag/日付/) - [TensorFlow.NET](https://blog.shikoan.com/tag/tensorflow-net/) - [Python](https://blog.shikoan.com/tag/python/) - [PyPDF2](https://blog.shikoan.com/tag/pypdf2/) - [CMYK](https://blog.shikoan.com/tag/cmyk/) - [印刷](https://blog.shikoan.com/tag/印刷/) - [TFRecord](https://blog.shikoan.com/tag/tfrecord/) - [モデル保存](https://blog.shikoan.com/tag/モデル保存/) - [h5](https://blog.shikoan.com/tag/h5/) - [ごちうさ](https://blog.shikoan.com/tag/ごちうさ/) - [Vue.js](https://blog.shikoan.com/tag/vue-js/) - [Bootstrap](https://blog.shikoan.com/tag/bootstrap/) - [linq.js](https://blog.shikoan.com/tag/linq-js/) - [staticmap](https://blog.shikoan.com/tag/staticmap/) - [地理院地図](https://blog.shikoan.com/tag/地理院地図/) - [空間情報](https://blog.shikoan.com/tag/空間情報/) - [Google Map](https://blog.shikoan.com/tag/google-map/) - [空中写真](https://blog.shikoan.com/tag/空中写真/) - [VOICEVOX](https://blog.shikoan.com/tag/voicevox/) - [Azure](https://blog.shikoan.com/tag/azure/) - [音声合成](https://blog.shikoan.com/tag/音声合成/) - [Text to speech](https://blog.shikoan.com/tag/text-to-speech/) - [音声処理](https://blog.shikoan.com/tag/音声処理/) - [ファミコン音源](https://blog.shikoan.com/tag/ファミコン音源/) - [Transformer](https://blog.shikoan.com/tag/transformer/) - [画像分類](https://blog.shikoan.com/tag/画像分類/) - [Albumentations](https://blog.shikoan.com/tag/albumentations/) - [WSL2](https://blog.shikoan.com/tag/wsl2/) - [Windows11](https://blog.shikoan.com/tag/windows11/) - [Docker](https://blog.shikoan.com/tag/docker/) - [nvidia-docker](https://blog.shikoan.com/tag/nvidia-docker/) - [PyTorch-lightning](https://blog.shikoan.com/tag/pytorch-lightning/) - [Vue3](https://blog.shikoan.com/tag/vue3/) - [Linux](https://blog.shikoan.com/tag/linux/) - [ONNX](https://blog.shikoan.com/tag/onnx/) - [ONNXRuntime](https://blog.shikoan.com/tag/onnxruntime/) - [高速化](https://blog.shikoan.com/tag/高速化/) - [推論](https://blog.shikoan.com/tag/推論/) - [argparse](https://blog.shikoan.com/tag/argparse/) - [SageMaker](https://blog.shikoan.com/tag/sagemaker/) - [AWS](https://blog.shikoan.com/tag/aws/) - [Google Colab](https://blog.shikoan.com/tag/google-colab/) - [Checkpoint](https://blog.shikoan.com/tag/checkpoint/) - [CLIP](https://blog.shikoan.com/tag/clip/) - [Domain Adaptation](https://blog.shikoan.com/tag/domain-adaptation/) - [OpenAI](https://blog.shikoan.com/tag/openai/) - [クロスモーダル](https://blog.shikoan.com/tag/クロスモーダル/) - [ファッション](https://blog.shikoan.com/tag/ファッション/) - [ログ](https://blog.shikoan.com/tag/ログ/) - [教師なし学習](https://blog.shikoan.com/tag/教師なし学習/) - [自己教師あり学習](https://blog.shikoan.com/tag/自己教師あり学習/) - [グラフ理論](https://blog.shikoan.com/tag/グラフ理論/) - [YOLOX](https://blog.shikoan.com/tag/yolox/) - [YOLO](https://blog.shikoan.com/tag/yolo/) - [NeRF](https://blog.shikoan.com/tag/nerf/) - [NLP](https://blog.shikoan.com/tag/nlp/) - [モデル圧縮](https://blog.shikoan.com/tag/モデル圧縮/) - [数式駆動教師あり学習](https://blog.shikoan.com/tag/数式駆動教師あり学習/) - [FractalDB](https://blog.shikoan.com/tag/fractaldb/) - [Foundationモデル](https://blog.shikoan.com/tag/foundationモデル/) - [視覚言語モデル](https://blog.shikoan.com/tag/視覚言語モデル/) - [トラッキング](https://blog.shikoan.com/tag/トラッキング/) - [ByteTrack](https://blog.shikoan.com/tag/bytetrack/) - [CVPR2022](https://blog.shikoan.com/tag/cvpr2022/) - [3D](https://blog.shikoan.com/tag/3d/) - [Few-shot](https://blog.shikoan.com/tag/few-shot/) - [拡散モデル](https://blog.shikoan.com/tag/拡散モデル/) - [LZ4](https://blog.shikoan.com/tag/lz4/) - [DataLoader](https://blog.shikoan.com/tag/dataloader/) - [並列化](https://blog.shikoan.com/tag/並列化/) - [フォント生成](https://blog.shikoan.com/tag/フォント生成/) - [TopK](https://blog.shikoan.com/tag/topk/) - [多次元配列](https://blog.shikoan.com/tag/多次元配列/) - [オープンボキャブラリーモデル](https://blog.shikoan.com/tag/オープンボキャブラリーモデル/) - [基盤モデル](https://blog.shikoan.com/tag/基盤モデル/) - [Adversarial Attack](https://blog.shikoan.com/tag/adversarial-attack/) - [Stable Diffusion](https://blog.shikoan.com/tag/stable-diffusion/) - [リアルタイム](https://blog.shikoan.com/tag/リアルタイム/) - [img2pdf](https://blog.shikoan.com/tag/img2pdf/) - [カラープロファイル](https://blog.shikoan.com/tag/カラープロファイル/) - [オートエンコーダ](https://blog.shikoan.com/tag/オートエンコーダ/) - [環境音](https://blog.shikoan.com/tag/環境音/) - [Vision & Languageモデル](https://blog.shikoan.com/tag/vision-languageモデル/) - [Adaptation](https://blog.shikoan.com/tag/adaptation/) - [Vision & Language](https://blog.shikoan.com/tag/vision-language/) - [エラー分析](https://blog.shikoan.com/tag/エラー分析/) - [OOD検知](https://blog.shikoan.com/tag/ood検知/) - [FastAPI](https://blog.shikoan.com/tag/fastapi/) - [GPT-3](https://blog.shikoan.com/tag/gpt-3/) - [Prompting](https://blog.shikoan.com/tag/prompting/) - [GPU](https://blog.shikoan.com/tag/gpu/) - [エンコード](https://blog.shikoan.com/tag/エンコード/) - [検索](https://blog.shikoan.com/tag/検索/) - [静止画](https://blog.shikoan.com/tag/静止画/) - [OCR](https://blog.shikoan.com/tag/ocr/) - [TTS](https://blog.shikoan.com/tag/tts/) - [音声](https://blog.shikoan.com/tag/音声/) - [StyleGAN](https://blog.shikoan.com/tag/stylegan/) - [Text4Vis](https://blog.shikoan.com/tag/text4vis/) - [Zeroshot](https://blog.shikoan.com/tag/zeroshot/) - [行動認識](https://blog.shikoan.com/tag/行動認識/) - [Gradio](https://blog.shikoan.com/tag/gradio/) - [フロントエンド](https://blog.shikoan.com/tag/フロントエンド/) - [セッション](https://blog.shikoan.com/tag/セッション/) - [T5](https://blog.shikoan.com/tag/t5/) - [Sentence Embedding](https://blog.shikoan.com/tag/sentence-embedding/) - [画像編集](https://blog.shikoan.com/tag/画像編集/) - [BLIP](https://blog.shikoan.com/tag/blip/) - [VQA](https://blog.shikoan.com/tag/vqa/) - [色空間](https://blog.shikoan.com/tag/色空間/) - [colorsys](https://blog.shikoan.com/tag/colorsys/) - [ディープラーニング](https://blog.shikoan.com/tag/ディープラーニング/) - [Decord](https://blog.shikoan.com/tag/decord/) - [CoCa](https://blog.shikoan.com/tag/coca/) - [セグメンテーション](https://blog.shikoan.com/tag/セグメンテーション/) - [キャプション生成](https://blog.shikoan.com/tag/キャプション生成/) - [オープンボキャブラリー](https://blog.shikoan.com/tag/オープンボキャブラリー/) - [パノラマ生成](https://blog.shikoan.com/tag/パノラマ生成/) - [Attention](https://blog.shikoan.com/tag/attention/) - [Adapter](https://blog.shikoan.com/tag/adapter/) - [LoRA](https://blog.shikoan.com/tag/lora/) - [diffusers](https://blog.shikoan.com/tag/diffusers/) - [ControlNet](https://blog.shikoan.com/tag/controlnet/) - [3次元復元](https://blog.shikoan.com/tag/3次元復元/) - [MultiDiffusion](https://blog.shikoan.com/tag/multidiffusion/) - [StableDiffusion](https://blog.shikoan.com/tag/stablediffusion/) - [GLIGEN](https://blog.shikoan.com/tag/gligen/) - [LLM](https://blog.shikoan.com/tag/llm/) - [ChatGPT](https://blog.shikoan.com/tag/chatgpt/) - [GPT](https://blog.shikoan.com/tag/gpt/) - [LangChain](https://blog.shikoan.com/tag/langchain/) - [画像生成](https://blog.shikoan.com/tag/画像生成/) - [モデルマージ](https://blog.shikoan.com/tag/モデルマージ/) - [GPT-4](https://blog.shikoan.com/tag/gpt-4/) - [プロンプトエンジニアリング](https://blog.shikoan.com/tag/プロンプトエンジニアリング/) - [文章平易化](https://blog.shikoan.com/tag/文章平易化/) - [DDPM](https://blog.shikoan.com/tag/ddpm/) - [Attention Couple](https://blog.shikoan.com/tag/attention-couple/) - [黒魔術](https://blog.shikoan.com/tag/黒魔術/) - [Attentionハッキング](https://blog.shikoan.com/tag/attentionハッキング/) - [動画生成](https://blog.shikoan.com/tag/動画生成/) - [Jupyter Lab](https://blog.shikoan.com/tag/jupyter-lab/) - [分布](https://blog.shikoan.com/tag/分布/) - [KLダイバージェンス](https://blog.shikoan.com/tag/klダイバージェンス/) - [EVA](https://blog.shikoan.com/tag/eva/) - [分類](https://blog.shikoan.com/tag/分類/) - [3D生成](https://blog.shikoan.com/tag/3d生成/) - [Lambda](https://blog.shikoan.com/tag/lambda/) - [docker-compose](https://blog.shikoan.com/tag/docker-compose/) - [スクレイピング](https://blog.shikoan.com/tag/スクレイピング/) - [Selenium](https://blog.shikoan.com/tag/selenium/) - [Chromium](https://blog.shikoan.com/tag/chromium/) - [Pandas](https://blog.shikoan.com/tag/pandas/) - [HTML](https://blog.shikoan.com/tag/html/) - [CSS](https://blog.shikoan.com/tag/css/) - [ステート](https://blog.shikoan.com/tag/ステート/) - [Web開発](https://blog.shikoan.com/tag/web開発/) - [認証](https://blog.shikoan.com/tag/認証/) - [API Gateway](https://blog.shikoan.com/tag/api-gateway/) - [動画要約](https://blog.shikoan.com/tag/動画要約/) - [動画検索](https://blog.shikoan.com/tag/動画検索/) - [マルチモーダル](https://blog.shikoan.com/tag/マルチモーダル/) - [MiniGPT4](https://blog.shikoan.com/tag/minigpt4/) - [心理学](https://blog.shikoan.com/tag/心理学/) - [llama.cpp](https://blog.shikoan.com/tag/llama-cpp/) - [EC2](https://blog.shikoan.com/tag/ec2/) - [実験経済学](https://blog.shikoan.com/tag/実験経済学/) - [囚人のジレンマ](https://blog.shikoan.com/tag/囚人のジレンマ/) - [AutoGPTQ](https://blog.shikoan.com/tag/autogptq/) - [BitsAndBytes](https://blog.shikoan.com/tag/bitsandbytes/) - [Streamlit](https://blog.shikoan.com/tag/streamlit/) - [並行処理](https://blog.shikoan.com/tag/並行処理/) - [asyncio](https://blog.shikoan.com/tag/asyncio/) - [非同期処理](https://blog.shikoan.com/tag/非同期処理/) - [ポーズ推定](https://blog.shikoan.com/tag/ポーズ推定/) - [JavaScript](https://blog.shikoan.com/tag/javascript/) - [base64](https://blog.shikoan.com/tag/base64/) - [Stable Difffusion](https://blog.shikoan.com/tag/stable-difffusion/) - [VLM](https://blog.shikoan.com/tag/vlm/) - [量子化](https://blog.shikoan.com/tag/量子化/) - [FlanT5](https://blog.shikoan.com/tag/flant5/) - [Universal Sentence Encoder](https://blog.shikoan.com/tag/universal-sentence-encoder/) - [推論高速化](https://blog.shikoan.com/tag/推論高速化/) - [MoviePy](https://blog.shikoan.com/tag/moviepy/) - [画像](https://blog.shikoan.com/tag/画像/) - [翻訳](https://blog.shikoan.com/tag/翻訳/) - [弱教師あり学習](https://blog.shikoan.com/tag/弱教師あり学習/) - [nginx](https://blog.shikoan.com/tag/nginx/) - [S3](https://blog.shikoan.com/tag/s3/) - [S3 Express One Zone](https://blog.shikoan.com/tag/s3-express-one-zone/) - [EventBridge](https://blog.shikoan.com/tag/eventbridge/) - [Gemini](https://blog.shikoan.com/tag/gemini/) - [Google](https://blog.shikoan.com/tag/google/) - [Embedding](https://blog.shikoan.com/tag/embedding/) - [テキスト分類](https://blog.shikoan.com/tag/テキスト分類/) - [RAG](https://blog.shikoan.com/tag/rag/) - [Custom Search JSON API](https://blog.shikoan.com/tag/custom-search-json-api/) - [デザイン](https://blog.shikoan.com/tag/デザイン/) - [グラフィックデザイン](https://blog.shikoan.com/tag/グラフィックデザイン/) - [Gemini Advanced](https://blog.shikoan.com/tag/gemini-advanced/) - [peft](https://blog.shikoan.com/tag/peft/) - [transformers](https://blog.shikoan.com/tag/transformers/) - [世界モデル](https://blog.shikoan.com/tag/世界モデル/) - [DeepMind](https://blog.shikoan.com/tag/deepmind/) - [GPT-4V](https://blog.shikoan.com/tag/gpt-4v/) - [Discord](https://blog.shikoan.com/tag/discord/) - [Terraform](https://blog.shikoan.com/tag/terraform/) - [Bot](https://blog.shikoan.com/tag/bot/) - [サーバーレス](https://blog.shikoan.com/tag/サーバーレス/) - [CloudFront](https://blog.shikoan.com/tag/cloudfront/) - [CDN](https://blog.shikoan.com/tag/cdn/) - [Lambda@Edge](https://blog.shikoan.com/tag/lambdaedge/) - [WAF](https://blog.shikoan.com/tag/waf/) - [Claude](https://blog.shikoan.com/tag/claude/) - [TSP](https://blog.shikoan.com/tag/tsp/) - [Arxiv](https://blog.shikoan.com/tag/arxiv/) - [requests](https://blog.shikoan.com/tag/requests/) - [評価モデル](https://blog.shikoan.com/tag/評価モデル/) - [評価指標](https://blog.shikoan.com/tag/評価指標/) - [文化的多様性](https://blog.shikoan.com/tag/文化的多様性/) - [顔](https://blog.shikoan.com/tag/顔/) - [Talking Head Generator](https://blog.shikoan.com/tag/talking-head-generator/) - [論文サーベイ](https://blog.shikoan.com/tag/論文サーベイ/) - [Florence2](https://blog.shikoan.com/tag/florence2/) - [Florence](https://blog.shikoan.com/tag/florence/) - [yumda](https://blog.shikoan.com/tag/yumda/) - [yum install](https://blog.shikoan.com/tag/yum-install/) - [Poppler](https://blog.shikoan.com/tag/poppler/) - [SAM](https://blog.shikoan.com/tag/sam/) - [SAM2](https://blog.shikoan.com/tag/sam2/) - [データ復活](https://blog.shikoan.com/tag/データ復活/) - [SDカード](https://blog.shikoan.com/tag/sdカード/) - [カメラ](https://blog.shikoan.com/tag/カメラ/) - [robocopy](https://blog.shikoan.com/tag/robocopy/) - [Terragrunt](https://blog.shikoan.com/tag/terragrunt/) - [インフラ](https://blog.shikoan.com/tag/インフラ/) - [IaC](https://blog.shikoan.com/tag/iac/) - [fck-nat](https://blog.shikoan.com/tag/fck-nat/) - [NATゲートウェイ](https://blog.shikoan.com/tag/natゲートウェイ/) - [iPerf](https://blog.shikoan.com/tag/iperf/) - [負荷テスト](https://blog.shikoan.com/tag/負荷テスト/) - [レイヤー](https://blog.shikoan.com/tag/レイヤー/) - [KMS](https://blog.shikoan.com/tag/kms/) - [セキュリティ](https://blog.shikoan.com/tag/セキュリティ/) - [バケットポリシー](https://blog.shikoan.com/tag/バケットポリシー/) - [OAC](https://blog.shikoan.com/tag/oac/) - [ホームページ](https://blog.shikoan.com/tag/ホームページ/) - [Cognito](https://blog.shikoan.com/tag/cognito/) - [OpenSearch](https://blog.shikoan.com/tag/opensearch/) - [ダッシュボード](https://blog.shikoan.com/tag/ダッシュボード/) - [BIツール](https://blog.shikoan.com/tag/biツール/) - [Athena](https://blog.shikoan.com/tag/athena/) - [SQL](https://blog.shikoan.com/tag/sql/) - [InternVL](https://blog.shikoan.com/tag/internvl/) - [バックアップ](https://blog.shikoan.com/tag/バックアップ/) - [DLM](https://blog.shikoan.com/tag/dlm/) - [EBS](https://blog.shikoan.com/tag/ebs/) - [CodePipeline](https://blog.shikoan.com/tag/codepipeline/) - [CI/CD](https://blog.shikoan.com/tag/ci-cd/) - [X-Ray](https://blog.shikoan.com/tag/x-ray/) - [ECS](https://blog.shikoan.com/tag/ecs/) - [Fargate](https://blog.shikoan.com/tag/fargate/) - [カナリアリリース](https://blog.shikoan.com/tag/カナリアリリース/) - [CloudWatch Logs](https://blog.shikoan.com/tag/cloudwatch-logs/) - [CVPR](https://blog.shikoan.com/tag/cvpr/) - [データ分析](https://blog.shikoan.com/tag/データ分析/) - [DynamoDB](https://blog.shikoan.com/tag/dynamodb/) - [クロスリージョン](https://blog.shikoan.com/tag/クロスリージョン/) - [CloudWatch](https://blog.shikoan.com/tag/cloudwatch/) - [CloudWatch Metrics](https://blog.shikoan.com/tag/cloudwatch-metrics/) - [CloudWatch Dashboard](https://blog.shikoan.com/tag/cloudwatch-dashboard/) - [AMI](https://blog.shikoan.com/tag/ami/) - [EFS](https://blog.shikoan.com/tag/efs/) - [CodeBuild](https://blog.shikoan.com/tag/codebuild/) - [Mock](https://blog.shikoan.com/tag/mock/) - [プロファイリング](https://blog.shikoan.com/tag/プロファイリング/) - [OpenVINO](https://blog.shikoan.com/tag/openvino/) - [MLOps](https://blog.shikoan.com/tag/mlops/) - [SnapStart](https://blog.shikoan.com/tag/snapstart/) - [Object Lambda](https://blog.shikoan.com/tag/object-lambda/) - [GPT-4o](https://blog.shikoan.com/tag/gpt-4o/) - [ファインチューニング](https://blog.shikoan.com/tag/ファインチューニング/) - [AppSync](https://blog.shikoan.com/tag/appsync/) - [WebSocket](https://blog.shikoan.com/tag/websocket/) - [HTTPS](https://blog.shikoan.com/tag/https/) - [API](https://blog.shikoan.com/tag/api/) - [ECS Exec](https://blog.shikoan.com/tag/ecs-exec/) - [SNS](https://blog.shikoan.com/tag/sns/) - [データ保護](https://blog.shikoan.com/tag/データ保護/) - [ALB](https://blog.shikoan.com/tag/alb/) - [ACM](https://blog.shikoan.com/tag/acm/) - [VPC](https://blog.shikoan.com/tag/vpc/) - [VPC Peering](https://blog.shikoan.com/tag/vpc-peering/) - [COSMOS](https://blog.shikoan.com/tag/cosmos/) - [物理](https://blog.shikoan.com/tag/物理/) - [Transit Gateway](https://blog.shikoan.com/tag/transit-gateway/) - [GitHub](https://blog.shikoan.com/tag/github/) - [GitHub Actions](https://blog.shikoan.com/tag/github-actions/) - [EC2 Image Builder](https://blog.shikoan.com/tag/ec2-image-builder/) - [SQS](https://blog.shikoan.com/tag/sqs/) - [被引用数](https://blog.shikoan.com/tag/被引用数/) - [Semantic Scholar](https://blog.shikoan.com/tag/semantic-scholar/) - [Backup](https://blog.shikoan.com/tag/backup/) - [スナップショット](https://blog.shikoan.com/tag/スナップショット/) - [AWS Transfer Family](https://blog.shikoan.com/tag/aws-transfer-family/) - [SFTP](https://blog.shikoan.com/tag/sftp/) - [WinSCP](https://blog.shikoan.com/tag/winscp/) - [Aurora](https://blog.shikoan.com/tag/aurora/) - [RDS](https://blog.shikoan.com/tag/rds/) - [ベクトルDB](https://blog.shikoan.com/tag/ベクトルdb/) - [Aurora Activity Stream](https://blog.shikoan.com/tag/aurora-activity-stream/) - [Kinesis Data Streams](https://blog.shikoan.com/tag/kinesis-data-streams/) - [Kinesis Data Firehorse](https://blog.shikoan.com/tag/kinesis-data-firehorse/) - [コスト計算](https://blog.shikoan.com/tag/コスト計算/) - [boto3](https://blog.shikoan.com/tag/boto3/) - [Mountpoint for Amazon S3](https://blog.shikoan.com/tag/mountpoint-for-amazon-s3/) - [Route 53](https://blog.shikoan.com/tag/route-53/) - [障害](https://blog.shikoan.com/tag/障害/) - [Application Load Balancer](https://blog.shikoan.com/tag/application-load-balancer/) - [Network Load Balancer](https://blog.shikoan.com/tag/network-load-balancer/) - [Global Accelerator](https://blog.shikoan.com/tag/global-accelerator/) - [VPCエンドポイント](https://blog.shikoan.com/tag/vpcエンドポイント/) - [NAT](https://blog.shikoan.com/tag/nat/) - [Dynamo DB](https://blog.shikoan.com/tag/dynamo-db/) - [Secrets Manager](https://blog.shikoan.com/tag/secrets-manager/) - [LeadingKeys](https://blog.shikoan.com/tag/leadingkeys/) - [IAM](https://blog.shikoan.com/tag/iam/) - [ABAC](https://blog.shikoan.com/tag/abac/) - [Aurora Global Database](https://blog.shikoan.com/tag/aurora-global-database/) - [マルチリージョン](https://blog.shikoan.com/tag/マルチリージョン/) - [PostgreSQL](https://blog.shikoan.com/tag/postgresql/) - [Aurora Data API](https://blog.shikoan.com/tag/aurora-data-api/) - [DeepSeek](https://blog.shikoan.com/tag/deepseek/) - [エラー処理](https://blog.shikoan.com/tag/エラー処理/) - [Systems Manager Patch Manager](https://blog.shikoan.com/tag/systems-manager-patch-manager/) - [Systems Manager](https://blog.shikoan.com/tag/systems-manager/) - [Patch Manager](https://blog.shikoan.com/tag/patch-manager/) - [スポットインスタンス](https://blog.shikoan.com/tag/スポットインスタンス/) - [Terrafrom](https://blog.shikoan.com/tag/terrafrom/) - [Systems Manager Run Command](https://blog.shikoan.com/tag/systems-manager-run-command/) - [CloudFormation](https://blog.shikoan.com/tag/cloudformation/) - [BEN](https://blog.shikoan.com/tag/ben/) - [Matting](https://blog.shikoan.com/tag/matting/) - [CodeDeploy](https://blog.shikoan.com/tag/codedeploy/) - [AWS Organization](https://blog.shikoan.com/tag/aws-organization/) - [SCP](https://blog.shikoan.com/tag/scp/) - [Organizations](https://blog.shikoan.com/tag/organizations/) - [Auto Scaling Group](https://blog.shikoan.com/tag/auto-scaling-group/) - [起動テンプレート](https://blog.shikoan.com/tag/起動テンプレート/) - [テスト](https://blog.shikoan.com/tag/テスト/) - [S3 RTC](https://blog.shikoan.com/tag/s3-rtc/) - [ECR](https://blog.shikoan.com/tag/ecr/) - [レプリケーション](https://blog.shikoan.com/tag/レプリケーション/) - [クロスアカウント](https://blog.shikoan.com/tag/クロスアカウント/) - [AWS CDK](https://blog.shikoan.com/tag/aws-cdk/) - [LRM](https://blog.shikoan.com/tag/lrm/) - [S3 Batch Operation](https://blog.shikoan.com/tag/s3-batch-operation/) - [Config](https://blog.shikoan.com/tag/config/) - [CloudWatch Alarm](https://blog.shikoan.com/tag/cloudwatch-alarm/) - [ElastiCache](https://blog.shikoan.com/tag/elasticache/) - [Redis](https://blog.shikoan.com/tag/redis/) - [メッセージブローカー](https://blog.shikoan.com/tag/メッセージブローカー/) - [ウォームプール](https://blog.shikoan.com/tag/ウォームプール/) - [クラウド](https://blog.shikoan.com/tag/クラウド/) - [DocumentAI](https://blog.shikoan.com/tag/documentai/) - [GPT4.5](https://blog.shikoan.com/tag/gpt4-5/) - [SVG](https://blog.shikoan.com/tag/svg/) - [Private Link](https://blog.shikoan.com/tag/private-link/) - [Private DNS](https://blog.shikoan.com/tag/private-dns/) - [Network Firewall](https://blog.shikoan.com/tag/network-firewall/) - [サブネット](https://blog.shikoan.com/tag/サブネット/) - [理論](https://blog.shikoan.com/tag/理論/) - [IPアドレス](https://blog.shikoan.com/tag/ipアドレス/) - [ルーティング](https://blog.shikoan.com/tag/ルーティング/) - [NACL](https://blog.shikoan.com/tag/nacl/) - [Session Manager](https://blog.shikoan.com/tag/session-manager/) - [Network Manager](https://blog.shikoan.com/tag/network-manager/) - [Route Analyzer](https://blog.shikoan.com/tag/route-analyzer/) - [Traffic MIrroring](https://blog.shikoan.com/tag/traffic-mirroring/) - [通信解析](https://blog.shikoan.com/tag/通信解析/) - [カスタマイズ](https://blog.shikoan.com/tag/カスタマイズ/) - [PuLP](https://blog.shikoan.com/tag/pulp/) - [最適化](https://blog.shikoan.com/tag/最適化/) - [整数計画法](https://blog.shikoan.com/tag/整数計画法/) - [NLB](https://blog.shikoan.com/tag/nlb/) - [ENI](https://blog.shikoan.com/tag/eni/) - [点群](https://blog.shikoan.com/tag/点群/) - [ニューラルネットワーク](https://blog.shikoan.com/tag/ニューラルネットワーク/) - [コンピュータービジョン](https://blog.shikoan.com/tag/コンピュータービジョン/) - [VLLM](https://blog.shikoan.com/tag/vllm/) - [SVG生成](https://blog.shikoan.com/tag/svg生成/) - [KDP](https://blog.shikoan.com/tag/kdp/) - [楽天](https://blog.shikoan.com/tag/楽天/) - [電子書籍](https://blog.shikoan.com/tag/電子書籍/) - [Ubuntu](https://blog.shikoan.com/tag/ubuntu/) - [パラメーターストア](https://blog.shikoan.com/tag/パラメーターストア/) - [GPT-5](https://blog.shikoan.com/tag/gpt-5/) - [評価](https://blog.shikoan.com/tag/評価/) - [DINO v3](https://blog.shikoan.com/tag/dino-v3/) - [DINO](https://blog.shikoan.com/tag/dino/) - [Kubernetes](https://blog.shikoan.com/tag/kubernetes/) - [Pod](https://blog.shikoan.com/tag/pod/) - [Service](https://blog.shikoan.com/tag/service/) - [Deployment](https://blog.shikoan.com/tag/deployment/) - [コーディングエージェント](https://blog.shikoan.com/tag/コーディングエージェント/) - [エージェント](https://blog.shikoan.com/tag/エージェント/) - [Claude Code](https://blog.shikoan.com/tag/claude-code/) - [Codex](https://blog.shikoan.com/tag/codex/) - [Antigravity](https://blog.shikoan.com/tag/antigravity/) - [Udemy](https://blog.shikoan.com/tag/udemy/) - [AIエージェント](https://blog.shikoan.com/tag/aiエージェント/) - [Manus](https://blog.shikoan.com/tag/manus/) - [ハルシネーション](https://blog.shikoan.com/tag/ハルシネーション/) - [BTO](https://blog.shikoan.com/tag/bto/) - [投資](https://blog.shikoan.com/tag/投資/) - [MCP](https://blog.shikoan.com/tag/mcp/) - [Windows](https://blog.shikoan.com/tag/windows/) - [Agent](https://blog.shikoan.com/tag/agent/) - [Strands Agent](https://blog.shikoan.com/tag/strands-agent/) - [ICCV 2025](https://blog.shikoan.com/tag/iccv-2025/) - [Helm](https://blog.shikoan.com/tag/helm/) - [ModernBERT](https://blog.shikoan.com/tag/modernbert/) - [Fine Tuning](https://blog.shikoan.com/tag/fine-tuning/) - [Ministral](https://blog.shikoan.com/tag/ministral/) - [Llama](https://blog.shikoan.com/tag/llama/) - [資格試験](https://blog.shikoan.com/tag/資格試験/)