機械学習とは何ですか?

AIと機械学習の違いは何ですか?

f:id:allanrgarcia:20200817173519j:plain

機械学習は最近大きな成功を収めているかもしれませんが、人工知能を実現するための1つの方法にすぎません。

1950年代にAIの分野が誕生したとき、AIは通常、人間の知能を必要とするタスクを実行できる任意のマシンとして定義されていました。

AIシステムは一般に、計画、学習、推論、問題解決、知識表現、知覚、運動、および操作、そしてより少ない程度で、社会的知性と創造性の少なくともいくつかの特徴を示します。

機械学習の他にも、AIを構築するために使用されるさまざまなアプローチがあります。進化的計算では、最適なソリューションを「進化」させるためにランダムな突然変異と世代間の組み合わせが行われます。エキスパートシステムでは、コンピューターに次のようなルールがプログラムされています。たとえば、飛行機を操縦する自動操縦システムなど、特定のドメインの人間の専門家の行動を模倣します。

あなたはより多くの人工知能機械学習を見ることができます。https://bap-software.net/knowledge/artificial-intelligence-machine-learning/

機械学習の主なタイプは何ですか?

機械学習は一般に、教師あり学習教師なし学習の2つの主なカテゴリに分けられます。

f:id:allanrgarcia:20200817173553j:plain

監視付き学習とは何ですか?

このアプローチは基本的に機械を例として教えています。

教師あり学習のトレーニング中、システムは大量のラベル付きデータ、たとえば、対応する番号を示すために注釈が付けられた手書きの数字の画像にさらされます。十分な例があれば、教師あり学習システムは、各数字に関連付けられたピクセルと形状のクラスターを認識し、最終的に手書きの数字を認識して、数字9と4または6と8を確実に区別できるようになります。

ただし、これらのシステムのトレーニングには通常、膨大な量のラベル付きデータが必要であり、一部のシステムは、タスクを習得するために数百万の例に公開する必要があります。

その結果、これらのシステムのトレーニングに使用されるデータセットは膨大なものになる可能性があり、GoogleのOpen Images Datasetには約900万の画像があり、そのラベル付きビデオリポジトリYouTube-8Mは700万個のラベル付きビデオにリンクしています。 、1400万以上の分類された画像があります。トレーニングデータセットのサイズは拡大し続けており、Facebookは最近、Instagramで公開されている35億枚の画像を、各画像にラベルとして添付されたハッシュタグを使用してまとめたと発表しました。これらの写真の10億枚を使用して画像認識システムをトレーニングすると、ImageNetのベンチマークで85.4%の記録的な精度レベルが得られました。

レーニングで使用されるデータセットにラベルを付ける面倒なプロセスは、Amazon Mechanical Turkなどのクラウドワーキングサービスを使用して実行されることが多く、世界中に広がる低コストの労働力の大規模なプールにアクセスできます。たとえば、ImageNetは2年間で約50,000人が集まり、主にAmazon Mechanical Turkを通じて採用されました。ただし、公開されているデータを使用してシステムをトレーニングするFacebookのアプローチは、手動のラベル付けのオーバーヘッドなしに、数十億の強力なデータセットを使用してシステムをトレーニングする代替方法を提供できます。

バーチャルリアリティゲーム開発の課題

Global Game Jamは、イノベーション、創造性、コラボレーションを促進します。プロまたはビデオゲームの愛好家、プログラマー、アーティスト、ビジュアルまたはサウンドデザイナー、アニメーター、3Dモデラー、あらゆるジャンルのジャックなど、誰でも大歓迎です。スキルレベルや専門分野に関係なく、参加者はチームを編成し、ビデオゲームを最初から最後まで作成するために48時間与えられます。

週末のコンテストでは、参加者はノートパソコン/デスクトップ、アートツール、およびソフトウェアツールを持参する必要があります(次のセクションの詳細を参照)。一般に、チームは現場で編成することをお勧めしますが、友人や同僚と協力することもできます。唯一の制限は、共通のテーマと所定の期間です。

f:id:allanrgarcia:20200717122428j:plain

今年のGGJテーマである「トランスミッション」は、自動車のトランスミッション、ラジオのトランスミッション、通信、またはチームが理解する可能性のあるあらゆる解釈を指します。機械、放送、通信のコンセプトをいじって、ロボットの戦いを中心としたマルチプレイヤーVRゲームのアイデアを思いつきました。このフォーマットでは、世界中にいるプレーヤーがお互いをアバターとして認識し、手の届く範囲にいるかのように対話できます。かっこいいですよね?

48時間はより大きな制約です。 これは、創造的思考を奨励して、小さくても革新的で実験的なゲームを生み出すことを目的としています。 参加者は、新しいアイデアをすばやく生成し、機能に優先順位を付け、ゲームデザインのプロトタイプをすばやく作成できる必要があります。 幸いなことに、いくつかの優れたソリューションが用意されていました。

平等、創造性、統一!

f:id:allanrgarcia:20200717122509j:plain

チームは、Unityゲームエンジンを中心にプロセスを構築しました。このプロセスでは、オブジェクトを3Dで操作し、さまざまなコンポーネントをそれらにアタッチすることによってゲームが作成されます。 VRゲームの構築には、次の手順が含まれます。
アートワーク、オーディオ、その他のアセットを持ち込みます。
C#、JavaScript / UnityScript、またはBooでコードを記述して、オブジェクト、シーンを制御し、ゲームロジックを実装します。

Unityでテストします。プラットフォームにエクスポートします。

そのプラットフォームでテストします。デプロイ。

私たちはスケッチから始め、48時間以内に実現可能と思われるデザインをまとめて選びました。次に、ロボットの設計とレベル全般について説明しました。私たちはシーンが黙示録後のゴミ捨て場になるだろうということに同意しました。ロボットは錆びた金属スクラップ片の間の舞台で戦うことになります。

3Dモデラーは、Blenderを使用して、ポリゴン、法線マップ、ライトニングマップ、拡散マップなどのモデルを2日未満で最初から作成しました。無料の3Dモデリングソフトウェアは、高速で非常に実用的でありながら美しい芸術性を促進するだけでなく、オブジェクトをUnityエディターに直接ドラッグすることもできます。テクスチャは、グラフィックデザイナーに洗練されたツールを提供するGNU画像操作プログラム(GIMP)で作成されました。

あなたはVR開発の詳細について相談することができます。https://bap-software.net/knowledge/vr-development/

オフショアソフトウェア開発とは何ですか?なぜそれが重要なのですか?

業界が成長しているペースを考えると、技術的およびコスト上の理由からソフトウェア開発をオフショアリングすることは自然なビジネスの動きです。 簡単なコーディングからカスタム開発、ソフトウェアのサポートとメンテナンス、モバイルアプリケーションの開発、ウェブサイトの設計と開発まで、さまざまなソフトウェア開発タスクをオフショアリングすることで、熟練したスタッフを雇って強化するという課題から解放されるだけでなく、 最短の時間で最高品質のソフトウェアをお届けします。 これにより、最終的に開発時間が短縮され、製品化までの時間が短縮されます。

オフショアソフトウェア開発のメリット

自社でソフトウェアを開発するか、オフショア開発パートナーを雇うかを決めるのは簡単ではありません。しかし、それが提供する利点を考えると、ソフトウェア開発のオフショアリングは魅力的なビジネス提案です。

1.低コスト:

最新のテクノロジーに関する専門知識を持つ社内ITチームを維持することは、困難でコストがかかります。ソフトウェア開発をオフショアリングすることで、ITインフラストラクチャに投資したり、従業員の採用、採用、トレーニングに時間を費やす必要がなくなります。

2.膨大な人材へのアクセス:

オフショア開発では、国際標準と品質のソフトウェアアプリケーションの開発に豊富な経験を持つ、才能があり知識豊富なソフトウェアエンジニアの膨大なプールにアクセスできます。さらに、オフショアパートナーは他のクライアント向けの国際的なカスタムソフトウェア開発プロジェクトに取り組んだ経験があるため、関係する課題を理解しています。

3.市場投入までの時間の短縮:

各プロジェクトに専任のチームを配置することにより、高品質のソフトウェアを提供するために、資格のある人が24時間体制で作業することができます。作業をより迅速に行うことができるだけでなく、製品がより早く市場に届くようにすることもできます。さらに、外部チームはビジネスプロセスを改善するための新しい洞察を提供できるため、ソフトウェアライフサイクルの各段階でイノベーションと創造性を活用できます。

4.コアビジネスアクティビティに集中するためのより多くの時間:

オフショアソフトウェア開発では、ソフトウェア開発の複雑で時間のかかるプロセスの管理について心配する代わりに、コアビジネス戦略により集中することができます。これにより、ソフトウェア開発部門の運営と管理に追加のストレスをかけることなく、コアプラクティスに集中できます。

5.ビジネスの成長:

オフショアソフトウェア開発により、あらゆる規模の企業が同じ熟練労働力にアクセスできるようになり、ソフトウェア開発に必要なコストと時間を削減できます。時間を解放することで、強みとコアオペレーションを活用し、持続的なビジネスの成長に向けて取り組むことができます。

オフショアソフトウェア開発のベストプラクティスを採用する方法

ソフトウェア開発の一部をオフショアする場合は、目標を達成するためのベストプラクティスを以下に示します。

1.すべてのオフショア開発者を紹介します。

ソフトウェア開発の大部分をオフショアリングする場合、オフショアチームのリードだけでなく、チーム全体にチームを紹介するのが最善です。オフショア開発者との強力なパートナーシップは、成果を上げるための鍵です。

2.小​​さくても高度なスキルを持つチームを構築します。

大規模な開発者チームを用意する代わりに、より小規模でスキルの高いチームを強く求めます。チームのサイズが小さいほど、可視性が向上し、コミュニケーションがより健全になり、より有益な結果が得られます。

3.フルタイムのオンショアおよびオフショアチームリーダーを率いる:

フルタイムのオンショアチームリードと対応するオフショアテクニカルリードは、ビジネスの優先事項をタイムリーに伝えるために不可欠です。チームリーダーは、必要なコーディング標準と実践を確立し、技術的な課題を解決し、コードをレビューし、オフショアチームのトレーニングと指導を行うことができます。

4.ビデオ会議を使用して毎日の会議を手配します。

オンショアとオフショアのチームリーダー間の頻繁なコミュニケーションとコラボレーションは、プロジェクトの目標を達成するために不可欠です。すべての問題がタイムリーかつ効率的な方法で対処されるように、できればビデオ会議を介して、毎日のステータスミーティングを手配します。

5.適切なソフトウェア開発追跡ツールを使用します。

ソフトウェア開発をオフショアリングする一方で、ビジネスのニーズを満たすために高品質のソフトウェアを計画、追跡、およびリリースすることが不可欠です。 Jiraなどのソフトウェア開発追跡ツールを使用すると、タスクを効率的に計画し、

チーム間で均等に分散し、それに応じて作業に優先順位を付けることができます。

オフショアの知識について詳しくは、https://bap-software.net/offshore-knowledge/

オフショア開発チームを信用することはできません。 ここに理由があります

オフショアの国で開発チームを雇う前に、信頼に関連するすべての問題を事前に明確にしておくことをお勧めします。 専任の開発チームを信頼できない理由を調べてみましょう。

https://bap-software.net/wp-content/uploads/2020/02/offshore-development-problems.jpg

理由1.ソフトウェアエンジニアに関する情報の欠如。

テクノロジースタック、経験、プロジェクトのポートフォリオ、教育など、候補者に関するすべての情報を用意することが不可欠です。採用担当者と人材獲得の専門家は、不完全なプロファイルは悪い第一印象を与えると述べています。 さらに、オフショア企業は必要なすべての情報をクライアントに提供しない場合があるため、誤解につながり、クライアントの要件が満たされない可能性があるというリスクが常にあります。 たとえば、オフショアのソフトウェア開発者がGitなどの最新テクノロジーやテスト駆動型開発などのアプローチに精通しているかどうかは、必ずしも明確ではありません。 最後に、エンジニアはポートフォリオを定期的に更新しないため、クライアントは最終的に誰が彼らのために働くのか本当にわかりません。

理由2.評価とランキングのあいまいさ。

Clutch.coなどのWebサイトを閲覧して、提携しているオフショア企業のカテゴリーランキングを調べることができます。 しかし、すべてのプロジェクトと人は異なり、ある会社にとって良いことは別の会社にとって悪いことです。 さらに、どの会社もClutch.coの要件を満たすレーキを申請して手配できます。 たとえば、Clutchは、最もスポンサーとなっているサービスプロバイダーを高くランク付けできます。 その結果、プロジェクトにとって誰がより良いかを決定することになると、評価はもはやそれほど価値がありません。 あなた自身の経験に基づいて個人的な評価を形成することは常に良い選択肢です。 ただし、オフショア開発の設定では常に可能であるとは限りません。 特定のプロジェクトに対してそのような評価を自分で作成するように要求する時間を想像してみてください。

理由3.対面コミュニケーションの欠如。

これは、オフショアソフトウェア開発の最も一般的な問題の1つであり、次の要因によって発生します。

  • 本社とオフショア会社は地球の反対側にある可能性があり、オンラインでお互いをキャッチして効率的に通信するのは難しい場合があります。さらに、開発者がレポートする時間内に実際に作業するかどうかを定義することは困難です。たとえば、Oracleのソフトウェア開発マネージャーであるJake Carlsonが、時間単位の課金をどのように実験したかについての話を共有します。彼はオフショアチームと同じタスクを実行しようとしましたが、チームが35時間を請求したのに対し、プロジェクトを完了するのに4時間しかかかりませんでした。
  • Lorraine Longhurstが彼女の記事「アジャイル開発のオフショアリングが機能しないことが多い理由」で強調しているように、オフショアチームは、コミュニケーションの問題を解決するよりも回避することを好むことがよくあります。チームは遠く離れているため、回避戦術に固執する方が簡単です。
  • オフショアチームメンバーをローカルチームメンバーと同じように扱っていない場合、信頼を築くことは不可能です。まだ十分な可能性を探っていないという理由だけで、面白くない貴重なタスクを与えます。 PandaDoc(ソフトウェア開発をベラルーシアウトソーシングしている会社)の創設者であるMikita Mikadoは、「海外のチームメンバーは、HQチームと同じように絶対に扱うべきです」と述べています。
  • オンショアチームとオフショアチームの文化の違いもコミュニケーションを妨げる可能性があります。繰り返しになりますが、Mikita Mikadoは、ソフトウェア開発チームを訪問せず、オフィスへの訪問を整理しないと、文化を彼らと共有することに消極的だと考えています。
  • 一部のオフショアソフトウェア開発会社は、ローカルプロジェクトマネージャーをオンショアチームとオフショアチーム間の「ブリッジ」として使用しています。その結果、開発者が直接PMの背後に「隠れている」かのように、直接通信することはできません。

理由4.リスクのある送金。

本社とオフショア会社間の送金は、プロセスのセキュリティと透明性に関連する特定のリスクをもたらす可能性があります。 たとえば、(1)オフショアの国からの請求書は、すべての税務当局に認識されない場合があります。 これは、Tax Free Todayが報告しているように、税金を回避する目的で偽造された請求書を発行するリスクがあるためです。

(2)すべての法的文書を注意深くチェックし、証明されたIDと明らかにされたIDを使用して、2つの会社間のトランザクションの透明性を確保する必要があります。 この記事では、ウクライナを例にして、海外の国に送金するための最良のオプションに関する詳細情報を見つけることができます。

(3)別の問題は、オフショア会社が提供する作業が品質基準を満たすことを100%保証できないことです。 その結果、お金と引き換えに質の低い仕事を得ることができるので、支払われた時間は労働時間であると確信することができません。

理由5.開発者がプロジェクトを辞めることにした場合はどうなりますか…。

場合によっては、ソフトウェア開発者が予期せずにプロジェクトを離れることがあります。これは特にフリーランサーによく見られます。 この場合、できるだけ早く代替品を見つける方法は? 特にスタートアップ企業の場合、新しいチームメンバーの検索とトレーニングに多くの時間とリソースが費やされるため、プロジェクトにとって壊滅的なものになる可能性があります。 その上、誰が交換品を探すべきか、そしてどれほど簡単かつ迅速に交換できるかは必ずしも明確ではありません。 たとえば、ソフトウェア開発者は、それを採用したのは会社または新興企業の仕事であると信じています。 したがって、会社には、代替を見つけることができる利用可能な人材プールが必要です。 ただし、開発者は妥当な時間内にタスクを代替に渡す必要があります。 とにかく、自分でやるのは複雑すぎるようです。

オフショア開発の問題について詳しくは、こちらをご覧ください。https://bap-software.net/knowledge/offshore-development-issues/