Amazon Web Services ブログ

Amazon Linux 2 AMI および Ubuntu AMI での SQL Server 2017 の設定方法

AWS で Microsoft SQL Server をデプロイするときは、アプリケーションのパフォーマンス、可用性、信頼性、およびコストをどのように最適化するかに関する数多くの選択肢があります。Amazon では、使用方法を最適化し、コストを削減するために、複数の SQL Server バージョン、幅広いコンピューティングオプション、および多数のライセンスオプションをご用意しています。従量制料金モデルを選択して AWS のライセンスが包含されたオプションを使用する、または Amazon EC2 で独自のライセンスを使用する (BYOL) ことができます。 EC2 インスタンスで利用できる SQL Server 2017 には、Amazon EC2 で実行される Microsoft Windows または Linux オペレーティングシステムのどちらかに SQL Server ベースのアプリケーションをデプロイする柔軟性があります。AWS は本日、ライセンスが包含された Amazon Machine Image (AMI) を提供することによる、Amazon Linux 2 および Ubuntu での Microsoft SQL Server のサポートを発表しました。このリリースでは、ライセンスが包含された AMI を EC2 コンソールから直接使用して、Amazon Linux 2 LTS […]

Read More

【開催報告】Amazon Chimeを使ったJAWS DAYS 2018 re:Capが開催されました

こんにちは。コミュニティプログラム担当の沼口です。JAWS-UG(Japan AWS User Group)は全国50以上の支部から成り立っており、それぞれの地域で独自に勉強会を企画、開催しています。各支部で勉強会が完結している場合が多いのですが、東京で開催されたJAWS DAYS 2018のre:Cap(参加できなかった人向けに、実際に参加した人がセッション内容を紹介する勉強会)などを地方単独でやるのは、登壇者への負担が大きいという課題がありました。 先日(2018/4/13)、石川県の金沢支部、静岡県の磐田支部、愛知県の名古屋支部の3つの勉強会会場をAWSが提供する統合コミュニケーションサービスの「Amazon Chime」を使い、それぞれの支部からJAWS DAYS 2018 re:Capの登壇者を募り、3元中継で合同勉強会を開催しました。各支部の勉強会会場からChimeを使って、プレゼンテーション画面の共有と音声と映像を配信することで、3名3地域の登壇者によるre:Capプレゼンテーションを実施し、JAWS DAYSで印象に残ったセッションの紹介、参加した感想などを参加メンバーと共有することができました。                     [金沢会場の登壇者によるプレゼンテーション]                   [各支部の模様はWebカメラを通してChimeで確認可能]                   [他支部のプレゼンテーションをプロジェクターで視聴]   Amazon Chimeを使った感想として、映像、音声ともにオンライン中継で使えるレベルである、という高評価をいただきました。一部、会場のスピーカーによっては聞きづらかったケースもありましたが、テレビ会議用のスピーカーフォンを準備したり、PCから会場に設置されている音響機器にケーブル接続したりすることで問題がない、というお墨付きをいただきました。一方、共有画面のウィンドウを間違えてしまった、プレゼンテーション中のポインターの利用方法など、今後ノウハウを蓄積・共有すべき点も明確になってきました。   各支部各地域の熱心なユーザーによる勉強会によって支えられているJAWS-UGですが、地方支部単独開催になるとコアリーダーの負担が大きくなりがちです。AWSは弊社社員による登壇参加などでの勉強会支援もしていますが、このようにAmazon Chimeなどを提供することで、コアリーダーの負担を減らしながら、勉強会を盛り上げていけるよう、さまざまな支援をJAWS-UGに対して提案・実施しています。 オフラインによる勉強会の良さを維持しながらも、オンラインサービスを効果的に使うことで、JAWS-UGの方々の負担を軽減しながらも、楽しく、ためになる勉強会になることを期待しています。来月の5月に開催予定のJAWS-UG勉強会Alexa.Westも同じくAmazon Chimeを使って大阪、神戸、京都、岡山、和歌山をつなげて、5元中継の合同勉強会になる予定です。 JAWS-UG勉強会情報はJAWS-UGのホームページに掲載されているスケジュールか、AWSのホームページの「イベント&オンラインセミナー」の「ユーザーグループ」のセクションで確認できます。ぜひチェックして興味のある勉強会に参加してはいかがでしょうか。   アマゾン ウェブ […]

Read More

EFS ファイルシステムを Amazon SageMaker ノートブックに (ライフサイクル設定を含めて) マウントする

今回のブログでは、Amazon Elastic File System (EFS) を Amazon SageMaker ノートブックインスタンスにマウントする方法について説明します。この方法を使えば、大規模なデータセットを保存してアクセスすること、そして SageMaker ノートブックインスタンスからの機械学習スクリプトを共有することが容易になります。 Amazon SageMaker ノートブックには、Jupyter Notebook サーバーを実行している自分自身のインスタンスに高速にアクセスするための機能が用意されています。そこから、Amazon SageMaker の分散マネージドトレーニング環境にアクセスし、リアルタイムで、実用グレードのホストエンドポイントをセットアップすることができます。Amazon SageMaker の高速でスケーラブルなアルゴリズムや、構築済みディープラーニングフレームワークコンテナを使用できます。Amazon EFS はシンプルでスケーラブルなファイルストレージを提供します。これは同時に複数の AWS リソース間で共有することができます。これら 2 つを組み合わせれば、まさに自分のノートブック環境から、大規模な機械学習データセットや共有コードに簡単にアクセスできます。 現在のところ、 Amazon SageMaker のノートブックインスタンスは、5 GB の Amazon Elastic Block Store (EBS) ストレージから開始し、約 20 GB の非永続的ストレージに拡大するようになっています。さらに大きなファイルは Amazon S3 からアクセスできますが、ファイルシステムと同じほどの柔軟性は提供されていません。柔軟性と大規模なデータセットを必要とするユースケースでは、EFS をノートブックインスタンスにマウントすることにより、その要件を満たすことができます。一部の顧客はまた、すでに EFS をマウントして、ファイルを保存し、既存の EC2 インスタンスにわたって共有しています。これは EFS と Amazon SageMaker が協力できる、別の分野です。 既存の EFS […]

Read More

Amazon Translate を使用したチャットチャンネル

世界では毎日、数百万のユーザーがメール、ソーシャルネットワーク、およびチャットプラットフォームやメッセージボードなど、他のオンラインコミュニティを通じて互いに通信しています。しばしばユーザーは特定のコミュニティに興味を抱いてチャットの会話に参加したいと思いますが、オンラインコミュニティの第一言語がユーザーが理解できる言語とは異なる場合があります。 このようなコミュニティの 1 つがゲーマー向けの世界最大のソーシャルビデオサービスである Twitch です。毎日、共有している関心事について見たり、話したり、チャットしたりするために、数百万のコミュニティメンバーが集まります。チャットはどのストリームにも内蔵されているので、ストリームを受動的に見ている代わりに、ショーに参加することができます。あなたは Twitch にはあなたの言語を必ずしも話す必要のない多くのストリーマーがいることに気付きますが、それでもあなたはストリームを楽しんだり、チャットに参加したりしたいと思うかもしれません。 このようなコミュニケーションを実現するため、AWS は、高速、高品質、適正価格の言語翻訳機能を備えたニューラルマシン翻訳サービスである Amazon Translate を用意しています。Amazon Translate は、ユーザー間のクロスリンガルコミュニケーションを可能にするオンデマンド翻訳機能を提供します。チャット、メール、ヘルプデスク、チケット発行アプリケーションにリアルタイム翻訳機能を追加すれば、英語を話す担当者や従業員は複数の言語で顧客とコミュニケーションをとることができるようになります。 このブログポストは、Twitch チャネルで Amazon Translate を使ってクロスリンガルチャットを実現する方法をカバーします。あなたはまた、受信したリアルタイムメッセージを有声音で発音するテキスト読み上げサービス、Amazon Polly の使用法も学習します。この追加機能によって、アクセス機能が強化され、ユーザーは、他のタスクに集中しながらメッセージを聞くことができます。 ソリューションの概要 このポストでは、CSS と JavaScript を備えた HTML ページを作成します。JavaScript ライブラリを使用して、Twitch チャネルに接続し、メッセージの受信を開始します。リアルタイムメッセージを受信すると、AWS SDK を使用して Amazon Translate を呼び出し、翻訳されたこれらのメッセージを UI に表示します。音声オプションを有効にした場合、AWS SDK を使用して Amazon Polly を呼び出し、音声合成されたこれらのメッセージをユーザー先で再生します。 Twitch アカウントを作成して構成する twitch.tv に移動して、Twitch アカウントにサインアップします。 Twitch アカウントのサインアップに成功したら、https://twitchapps.com/tmi に移動して、Twitch OAuth トークンを作成します。 [Connect with […]

Read More

より高速で、より柔軟性のあるモデルを Amazon SageMaker 線形学習者でトレーニングする

本日、Amazon SageMaker は、内蔵の線形学習者アルゴリズムに対して、いくつかの機能追加を実施しました。Amazon SageMaker アルゴリズムは、労力を必要とせずに巨大なデータセットにスケールし、比類のない速度を達成できる、最新のハードウェア最適化の利点を活用できるように設計されています。Amazon SageMaker の線形学習者アルゴリズムは、線形回帰および二項分類アルゴリズムの両方を包含しています。 これらのアルゴリズムは金融、不正/リスク管理、保健、ヘルスケアにおいて広く使われています。学習者アルゴリズムの新しい機能は、トレーニングの速度を向上させ、異なるユースケースに合わせてモデルをカスタマイズしやすくするものです。例としては、不均衡クラスによる分類が含まれます。これは、ある結果が別のものよりずっとまれにしか生じないような分類です。また、回帰に特化した損失関数もあります。特定のモデルエラーに対して、他のものよりも大きなペナルティを科すことが重要な場合に対応します。 このブログでは、次の 3 つの点を扱います。 最適なモデルに対しては早期に終了して保存すること。 線形学習者モデルをカスタマイズする新しい方法。次のものが含まれます。 ヒンジ損失 (サポートベクターマシン) 分位点損失 Huber 損失 イプシロン不感応損失 クラス重み付けオプション それから、二項分類におけるパフォーマンスを向上させるためにクラス重み付けを用いる例を実際に試してみます。 早期終了 線形学習者は、確率的勾配降下法 (SGD) または Adam のような SGD の変種を用いて、モデルをトレーニングします。トレーニングでは複数回にわたってデータを処理することが求められます。これはエポックと呼ばれています。データはバッチ、ときにはミニバッチと呼ばれる塊として、メモリに読み込まれます。エポックは何回実行するべきでしょうか。理想的には、収束するまでトレーニングを行いたいところです。つまり、これ以上繰り返しても利点が増えなくなるところまでです。モデルが収束してからもエポックを実行するのは時間とメモリの無駄ですが、適切なエポック数を推測するのは、実際にトレーニングジョブを実行するまでは困難です。トレーニングのエポック数が少なすぎると、モデルの精度は本来可能な精度よりも落ちてしまいます。しかし、エポック数が多すぎると、リソースが無駄になりますし、過剰適合によってモデルの精度が悪化する可能性もあります。当て推量を避け、モデルトレーニングを最適化するために、線形学習者には 2 つの新しい機能が追加されました。自動的な早期終了と、最適なモデルの保存です。 早期終了は 2 つの基本的様式で動作します。検証セット付きと検証セットなしです。多くの場合、データはトレーニング、検証、および試験データセットに分割されます。トレーニングは損失の最適化のため、検証はハイパーパラメーターのチューニングのため、試験はモデルがまだ得ていない将来のデータに対しどの程度のパフォーマンスを出せるかを、公平に見積もるために行われます。検証データセット付きの線形学習者アルゴリズムを提供した場合、検証損失について向上が見られなくなると、モデルのトレーニングは早期に終了します。検証セットが利用できない場合、トレーニング損失について向上が見られなくなると、モデルのトレーニングは早期に終了します。 検証データセット付きの早期終了 検証データセットを利用することの大きな利点としては、トレーニングデータに対する過剰適合が起きたかどうか、そしていつ起きたかについて判断できることが挙げられます。過剰適合は、トレーニングデータへの適合性が緊密すぎる予測をモデルが与えるようになって、汎化されたパフォーマンス (まだ得ていない将来のデータに対するパフォーマンス) が低下することを指しています。下のグラフの右側は、検証データセット付きのトレーニングの典型的な進行状況を示しています。エポック 5 までは、モデルはトレーニングセットからの学習を続けており、検証セットでの成績が次第に良くなっています。しかしエポック 7~10 では、モデルがトレーニングセットへの過剰適合を起こし始めていて、検証セットでの成績が悪くなっていきます。モデルがトレーニングデータでの向上 (過剰適合) を続けていたとしても、モデルが過剰適合を始めたら、トレーニングを終了しなければなりません。そして、過剰適合が始まる直前の、最善のモデルを復元する必要もあります。これらの 2 つの機能は、線形学習者ではデフォルトでオンになっています。 早期終了のためのデフォルトのパラメーター値を下のコードに示します。早期終了の動作をさらに調整するため、値の変更を試してみてください。早期終了を完全にオフにするには、early_stopping_patience の値を実行するエポック数より大きくしてください。 early_stopping_patience=3, early_stopping_tolerance=0.001, パラメーター early_stopping_patience は、改善が見られない場合にも、トレーニングを終了するまで何回のエポックを待つかを定義します。早期に終了することにした場合でも、このパラメーターをある程度の大きさにするのは有用です。学習曲線には凹凸ができることがあるからです。改善がまだ続く場合でも、パフォーマンスが 1 ないし […]

Read More

ライフサイクル構成およびインターネットアクセスを無効にするオプションを使用して Amazon SageMaker ノートブックインスタンスをカスタマイズする

Amazon SageMaker は、データの探索と前処理用に Jupyter ノートブックを実行する、完璧なマネージドインスタンスを提供します。顧客は、構成済みのノートブックインスタンスをワンクリックで簡単に起動できることに大きな価値を見出しています。現在、私たちは、2 つの新しいオプションを提供することによってカスタマイズ性を向上させることに取り組んでいます。すなわち、ノートブックインスタンスのカスタマイズプロセスの自動化を支援するライフサイクル構成と、ノートブックインスタンスに制御されたセキュリティ環境を提供するために、ノートブックインスタンスをパブリックインターネットから切り離す機能です。 ノートブックインスタンスのライフサイクル構成 Amazon SageMaker は現在、追加ライブラリをノートブックインスタンスに手動でインストールする機能を備えています。しかし、ノートブックインスタンスを停止させると、これらの追加したカスタマイゼーションも、同時に削除されてしまいます。そのため、ノートブックインスタンスを再起動した場合、これらを再び手動で追加する必要があります。Amazon SageMaker の新しいライフサイクル構成機能を使用すると、これらのカスタマイゼーションをインスタンスのライフサイクルのさまざまなフェーズで適用するのを自動化することができるようになります。たとえば、一連のライブラリをインストールするスクリプトを作成し、ライフサイクル構成機能を使用して、ノートブックインスタンスが起動されるたびにスクリプトが自動的に実行されるように構成することができます。あるいは、ノートブックインスタンスが作成されたとき、スクリプトが一度だけ、自動的に実行されるように構成することもできます。 TurboTax や QuickBooks など、グローバルに製品およびプラットフォームを提供していることで知られる Intuit は、ライフサイクル構成を使用して、セキュリティスキャナーのデプロイや、ルーティングルールの再構成など、ノートブックインスタンスのセキュリティ環境をカスタマイズしています。また Intuit は、ノートブックインスタンスではインターネットへの直接アクセスを無効にし、ライフサイクル構成を使用して、VPC にデプロイされたプライベートパッケージインデックスを利用する、パッケージのインストールをブートストラップしています。 ノートブックインスタンスのインターネットへの直接アクセスを無効にするオプション 従来は、すべての Amazon SageMaker ノートブックインスタンスがデフォルトでインターネットへの直接アクセス権を持っており、それを無効にすることはできませんでした。これにより、パブリックインターネットから、人気のあるパッケージ、ノートブック、データセットをダウンロードしたり、他の Amazon SageMaker コンポーネントにアクセスしたりすることができました。しかし、ノートブックインスタンスを仮想プライベートクラウド (VPC) に接続すると、ノートブックインスタンスは、『ノートブックインスタンスのセキュリティ』で議論しているように、データアクセスのための余計なアベニューを装備することになります。その結果、いくつかの顧客から、インターネットアクセスを制御する機能についての要望がありました。特に、自社の VPC に接続するノートブックインスタンスについての要望です。現在、Amazon SageMaker ノートブックインスタンスのデフォルトのインターネットへの直接アクセスを無効にするオプションが用意されました。これを使用すると、VPC 構成を信頼して、ノートブックインスタンスにインターネットアクセスを許可するかしないかを制御させることができます。 これらの新しい機能について調べるために、Amazon SageMaker コンソールを開いて、ノートブックインスタンスを作成します。ページの下にある [Lifecycle configuration (ライフサイクル構成)] にナビゲートします。  始めて使用する場合、アカウントにはいかなるライフサイクル構成も含まれていないので、[Create a lifecycle configuration (ライフサイクル構成の作成)] を選択します。 最初のライフサイクル構成を作成するための作業ウィンドウがポップアップします。ライフサイクル構成を追加していけば、このウィンドウのドロップダウンリストから既存の構成を選択することができるようになります。 このポップアップウィンドウで、ライフサイクル構成に名前を付け、[Start notebook (ノートブックの起動)] または [Create […]

Read More

Gluon on Amazon SageMaker 上の Gluon および AWS Batch によるテキスト分類

当社の顧客は問題を抱えていました。手作業による保証クレームの分類がボトルネックとなっていたのです。これらのクレームは、イベントの詳細を短く説明するテキストフィールドに基づくものです。テキストの例は次のようなものです。「近年、天候不順が見られるアリゾナ州において、ある暑い日にプルトニウムを燃料とする原子炉が加熱しました。高温による損傷が、流束キャパシタに及びました。交換せずに元に戻すことはできません」。このクレームを分類するとしたら、「火災」か何かになるでしょう。 クレーム部門の担当者は、通常何千件にもなる、山のような保証クレームを読み、提出者がクレームを正しく分類していたことを確認するために、それぞれの例を手作業で適切な保証カテゴリに分類しなければなりません。 会社は、クレームの解決にかかる時間をできる限り短縮するため、このパイプラインをスピードアップすることを望んでいました。これは顧客満足度を保つ点で中心的な要件です。会社は過去の保証クレームについての大規模で広範なデータベースを有していたので、次のステップとして、教師あり学習のソリューションに目を向けるのは論理的なことでした。 今回のブログでは、技術には強くないクレームチームと、よりソリューションに注意を向ける傾向のあるデータサイエンスチームの間の溝を埋めることにより、顧客のワークフローをスピードアップするのに役立つ、特定のテキスト中の感情を分析するソリューションの概要について説明します。この例示シナリオでは、当社の分類モデルを MXNet の Gluon と Amazon SageMaker によってトレーニングした後、AWS Batch の弾力性のあるリソースを用いて大量のテキストのバッチを処理するため、AWS Lambda に基づいてアプリケーションを構築することになります。 始める前の注意ですが、Python、AWS のコマンドラインインターフェース (CLI)、そして Python Boto3 向けの AWS SDK になじみがあれば、このブログから十分な益を得られるでしょう。 データ 今回のブログでのデモのため、IMDB Large Movie Review Dataset のサブセットを使うことにします。これはすでにテストとトレーニングセットに分けられています。次に示すのは、コンマ区切りのテキストと、そのテキストの感情分類です。 感情: 1、テキスト: 「あなたは今までに、スポーツのために出かけ、ベストを尽くした結果、短い時間でも自分が重要な役割に就いていて、ヒーローかチャンピオンになるチャンスが開かれていることに気づきましたが…結局失敗した、ということがありましたか? 私たちの多くは、人生できっとそのような瞬間を経験したに違いないと思います。これが、「明日へのタッチダウン」(原題は “The Best of Times.”) という映画の背景です。この物語の中で、中年の銀行員 Jack Dundee (Robin Williams) は、何年も前のフットボールの試合でのミスのために深い憂鬱を抱えていたのですが、もう一度試合をやり直そうと決心します。そのため彼は、かつて偉大なフットボールのクォーターバックだった Reno Hightower (Kurt Russell) にカムバックするように説得しなければなりませんでした。Reno は現在の苦しい生活のことをあきらめていて、心の支えであり、年とともに忘れがたくなっていた過去の栄光を書き換えることを望みません。彼らはどちらも、年月は過ぎ去ったという事実に直面しているだけでなく、結婚関係でも泥沼に陥っていて、何とかすることが必要でした。Jack の義父 (Donald Moffat) は何かにつけ、彼のミスのことを思い出させるので、容易なことではありません。それでも […]

Read More

Amazon Machine Learning API と PubNub ChatEngine でスマートなチャットアプリを開発する

これは PubNub のオープンソフトウェアエンジニアである Adam Bavosa によって投稿されたゲストブログです。彼ら自身の言葉を借りれば、「PubNub は、チャット、デバイスコントロールおよびリアルタイムのマッピングアプリのために、グローバルなスケールに拡大できるリアルタイム API を提供している、リーディングプロバイダー」です。 チャットアプリに対する要求は非常な勢いで拡大しています。ソーシャルアプリからビジネス上のコラボレーション、ゲームプレーヤー同士のチャットから顧客サポートに至るまで、あらゆる種類のアプリがチャットを必要としています。Telegram のようなチャットアプリは主要な報道機関の情報源となっており、広い範囲の関心を集めています。 しばらく前までは、スケーラブルで豊富な機能を持つチャットアプリを開発しようとすると、とてつもない困難に直面しました。今ではそのようなことはありません。PubNub ChatEngine には Amazon 機械学習 API が統合されています。これによって、モバイルとウェブ向けに、インテリジェントでスケーラブルなチャットアプリを開発することはきわめて容易になりました。 今回のブログでは、PubNub ChatEngine を基にして、Amazon Translate と Amazon Polly を加え、あらゆる場所に埋め込める、多言語対応、音声認識対応のアプリを作り上げる方法についてご紹介しましょう。\\ Amazon の新しい機械学習 (ML) API は、チャットアプリをさらに強力なものにします。そして、すでに組み込まれている PubNub との統合と組み合わせることにより、Amazon ML API は、ChatEngine を活用してきたチャットアプリに簡単に追加できます。このブログは、新しい Amazon ML API と PubNub ChatEngine を利用して、様々な種類のスマートなチャットアプリを短期間で構築してデプロイするためのクイックスタートとして用いることができます。これは、一対一のチャットであろうと、エンタープライズグレードのセキュリティと信頼性を備えた、それぞれ 100 万人以上の人々が利用できるチャットルームであろうと、変わりません。 PubNub の BLOCKS カタログには、次のような 3 種類の Amazon ML API […]

Read More

Amazon Sagemaker を使用してマーチ・マッドネスを予測する

ここは米国で 3 月中旬です。ということは、思いつくのはたった一つのことしかありません。マーチマッドネス (全米大学男子バスケットボール大会) です。毎年数え切れないほど多くの人々が、トーナメント表にメモを書き込んで、どの大学バスケットボールチームが制覇するかを予想します。あなたが 2018 年の優勝は間違いなしと思っている贔屓のチームはありますか。 このブログポストでは、Amazon SageMaker を使ってマーチマッドネスの予測変数を作成する方法を紹介します。Amazon SageMaker は、開発者やデータサイエンティストがいかなる規模の機械学習モデルであっても容易に構築、トレーニング、およびデプロイすることを可能にする完全マネージド型サービスです。このポストでは、プロセスをゼロから作り上げる手順について紹介します。モデリングのため、私たちは、チームごとの成績統計情報 (2002 年から現在) を記録している kenpom.com (https://kenpom.com/) と、過去の得点 (2011 年から現在) を記録している College Basketball Reference (https://www.sports-reference.com/cbb/) の公開されているフロントページのデータを利用します。私たちは、Jupyter Notebook をダウンロードする方法を説明しますが、このノートブックを使用すると、データの処理と探索、大学バスケットボール試合の結果の予測、そして最終的に Sagemaker エンドポイントの作成を行うことができます。 Amazon SageMaker を使用してマーチマッドネスを予測する Amazon SageMaker でサポートされるマーチマッドネス予測変数アプリケーションを作成する このポストは、Amazon SageMaker を使用するプロセスのモデリングとホスティングにフォーカスします。将来のポストでは、あなたのモデルを使用して構築するアプリケーションの作成方法を紹介します。たとえば、Amazon SageMaker エンドポイントを使ってウェブサイトを補強することによって、予定されている今後の試合に関する予測を自動的に生成したり、2018 NCAA トーナメントをシミュレートしたり、仮定の対戦に関するユーザ入力に対応したりすることができるようになります。 ザビエル大学は Sweet 16 におけるゴンザガ大学の勝敗の行方を見届ける必要がある。仮定の Elite 8 の対戦では、デューク大学とミシガン州立大学は、それぞれ、第 2 シードと第 3 シードだが、中西部では、両校とも第 1 […]

Read More