مطالب توسط

درباره یادگیری ماشین

تاریخچه

به دلیل ظهور فناوری‌های جدید محاسباتی، امروزه یادگیری ماشین مانند گذشته نیست. علم یادگیری ماشین از شناخت الگو و تئوری خاصی متولد شده است. این تئوری بیان می‌کند که کامپیوترها از توانایی یادگیری برخوردارند! محققان علاقمند به هوش مصنوعی تحقیقاتی برای پاسخ به این سوال انجام داده‌اند: آیا کامپیوترها می‌توانند از طریق داده‌هایی که در اختیار آن‌ها قرار می‌گیرند یاد بگیرند یا خیر.

ماشین‌های مختلف ممکن است در موقعیت‌های مختلف داده‌های جدیدی دریافت کنند؛ بنابراین باید قادر به سازگاری با هر داده‌ی جدیدی باشند. آن‌ها از محاسبات قبلی یاد می‌گیرند تا تصمیمات و نتایج قابل اعتماد و قابل تکرار تولید کنند. جنبه تکراری یادگیری ماشین از این نظر حائز اهمیت است. این علم چندان جدید نیست؛ اما علمی است که اخیرا جنبش‌های تازه‌ای پیدا کرده است.

بسیاری از الگوریتم‌های machine Learning از مدت‌ها پیش وجود داشته‌اند. اما توانایی اعمال محاسباتی پیچیده ریاضی در داده‌های بزرگ و با سرعت زیاد از پیشرفت‌های اخیر محسوب می‌شود. در این مقاله به این سوال می‌پردازیم که machine Learning چیست؟

machine Learning شاخه‌ای از هوش مصنوعی (AI) است که به سیستم توانایی یادگیری خودکار و بهبود، بدون برنامه ریزی صریح را می‌دهد و بر توسعه برنامه‌های رایانه‌ای متمرکز است. این برنامه‌ها می‌توانند به داده‌ها دسترسی داشته باشند و از آن‌ها برای اهداف مختلف استفاده کنند.

فرآیند یادگیری با مشاهدات و با استفاده از برخی داده‌ها مانند مثال‌ها، تجربه مستقیم یا دستورالعمل‌ها آغاز می‌شود. هدف این است که بر اساس داده‌هایی که اکنون به ماشین‌ها می‌دهیم، بتوانیم الگوهای موجود در آن‌ها را پیدا کنیم. در نهایت نیز به کمک این الگوها برای آینده تصمیمات بهتری بگیریم.

به عبارت دیگر هدف اصلی این است که به کامپیوترها اجازه دهیم بدون دخالت و کمک انسان به طور خودکار یاد بگیرند و اقدامات خود را بر اساس آن تنظیم کنند.

مزیت‌ها و معایب

یادگیری ماشین تجزیه و تحلیل مقادیر عظیم داده را امکان پذیر می‌کند. اگرچه این علم به طور کلی نتایج سریعتر و دقیق‌تری را برای شناسایی فرصت‌های سودآور یا خطرات ارائه می‌دهد؛ اما ممکن است برای افزایش دقت و صحت آن به زمان و منابع بیش‌تری نیاز باشد. تلفیق یادگیری ماشین با هوش مصنوعی و فناوری‌های شناختی می‌تواند ماشین‌ها را برای پردازش حجم زیادی از اطلاعات آماده کند. در نظریه‌ی یادگیری ماشین علومی چون ریاضیات، آمار و علم رایانه به کار رفته است.

معایب machine Learning

این علم می‌تواند تأثیر بسزایی در پیشرفت پردازش اطلاعات داشته باشد، اما خالی از ایراد نیست.

  • ماشین‌ها قرار است با توجه به الگوها و داده‌ها آموزش ببینند. بنابراین در صورتی که در داده‌های آینده یا الگوها تغییرات کلی وجود داشته باشد، احتمال بروز خطا بسیار زیاد است.
  • استفاده از این علم و جایگزین کردن کامپیوترها برای کارهای مختلف نیازمند زمان و هزینه زیادی است.
  • ارائه داده‌ها به ماشین و انتخاب الگوریتم مناسب چالش دیگری است که پیش روی فعالان این حوزه وجود دارد.

دسته بندی روش‌های machine Learning

علم یادگیری ماشین دسته‌بندی‌های گوناگونی دارد. این دسته‌بندی‌ها در مورد روش پیاده‌سازی آن و یادگیری ماشین‌های مختلف صحبت می‌کند. در ادامه توضیحاتی در مورد روش‌های مختلفی که مورد استفاده قرار می‌گیرد، ارائه داده‌ایم.

یادگیری ماشین با ناظر (supervised)

الگوریتم‌های یادگیری ماشین با ناظر یا تحت نظارت، می‌توانند آنچه را که در گذشته آموخته شده است را به آینده تعمیم دهند و از آن‌ها برای پیش بینی استفاده کنند. در روش‌های با ناظر، ماشین با شروع از تجزیه و تحلیل مجموعه داده‌های شناخته شده برای آموزش، یک الگوریتم یادگیری و تابع استنباط‌شده را برای پیش‌بینی مقادیر خروجی تولید می‌کند. این سیستم پس از آموزش کافی قادر است الگوریتم ایجاد شده را برای هر ورودی جدید فراهم کند. الگوریتم یادگیری همچنین می‌تواند خروجی خود را با خروجی صحیح  در نظر گرفته شده مقایسه کرده و خطاهایی را پیدا کند تا مدل را متناسب با آن اصلاح کند. به طور خلاصه، در یادگیری با ناظر، ما یک سری ویژگی داریم و یک لیبل؛ مثلا در یک دیتاست قیمت خانه، یک سری ویژگی (تعداد اتاق‌ها، متراژ، فاصله از مرکز شهر و …) داریم و یک لیبل (قیمت خانه). با داشتن این دیتاست و با استفاده از روش‌های یادگیری با ناظر، می‌توان مدلی ساخت که قیمت یک خانه را با گرفتن ویژگی‌های آن پیش‌بینی کند.

الگوریتم machine Learning بدون ناظر (unsupervised)

الگوریتم‌های بدون نظارت در مقابل الگوهای با ناظر قرار دارند. آن‌ها هنگامی به کار می‌روند که اطلاعات مورد استفاده برای آموزش نه طبقه‌بندی و نه برچسب‌گذاری شده باشند. در یادگیری بدون ناظر، سیستم‌ها می‌توانند تابعی را برای توصیف ساختار پنهان از داده‌های بدون برچسب استنباط کنند. روش‌های یادگیری ماشین بدون ناظر خروجی صحیح را تشخیص نمی‌دهند، اما داده‌ها را کاوش می‌کنند و می‌توانند از مجموعه داده‌ها ساختارهای پنهان آن‌ها را استنباط کنند.

الگوریتم‌های نیمه نظارتی

الگوریتم های یادگیری ماشین نیمه نظارت شده، ویژگی‌هایی در بین روش یادگیری با ناظر و بدون ناظر قرار می‌گیرند. زیرا در این روش، بخشی از داده‌های ارائه شده برای آموزش دارای برچسب هستند و برخی بدون برچسب و دسته بندی. به طور معمول در روش یادگیری نیمه نظارت شده مقدار کمی از داده‌های دارای برچسب و مقدار زیادی از داده ها بدون برچسب هستند. سیستم‌هایی که از این روش استفاده می‌کنند، می‌توانند به میزان قابل توجهی دقت یادگیری را افزایش دهند. در این روش‌ها به کامپیوتر تنها یک سیگنال آموزشی ناقص داده می‌شود. منظور از سیگنال آموزشی ناقص، داده‌‌هایی است که بسیاری از خروجی‌های آن از دسترس خارج هستند.

یادگیری تقویتی (Reinforcement Learning)

در روش‌های یادگیری ماشین تقویت شده، ماشین برای رسیدن به هدفی خاص، مثلا برنده شدن در یک مسابقه کامپیوتری تلاش می‌کند. ماشین در این روش یادگیری از آزمون و خطا برای تقویت و بهبود عملکرد خود استفاده می‌کند. دلیل اینکه این روش را با نام یادگیری تقویت شده می‌شناسیم، این است که ماشین با استفاده از بازخوردهای مثبت و منفی که دریافت می‌کند، می‌تواند عملکرد خود را ارتقا دهد. بنابراین در نهایت تجربه کافی به دست می‌آورد و می‌تواند به هدف مشخص شده برسد.

اهمیت یادگیری ماشین چیست؟

علاقه زیاد به یادگیری ماشین در میان محققان به دلیل همان عواملی است که باعث محبوبیت بیشتر علم داده کاوی و تجزیه و تحلیل داده‌ها نسبت به زمان‌های گذشته شده است. مهم‌ترین عوامل افزایش توجه و تحقیقات در مورد یادگیری ماشین عبارت است از؛

  • افزایش حجم و نوع داده‌های موجود
  • نیاز به پردازش محاسباتی ارزان‌تر و قدرتمندتر
  • نیاز به ذخیره سازی مقرون به صرفه

همه این موارد به معنای امکان تولید سریع و خودکار مدل‌هایی است که بتوانند داده‌های بزرگتر و پیچیده‌تری را تجزیه و تحلیل کنند. این مدل‌ها در عین حال باید بتوانند نتایج سریع‌تر و دقیق‌تری را ارائه دهند؛ حتی در مقیاس‌های بسیار بزرگ. نتیجه مهم و مزیت روش‌های یادگیری ماشین، ساختن مدل‌های دقیق برای یک سازمان است. در نتیجه ایجاد این مدل‌ها شانس آن سازمان برای شناسایی فرصت‌های سودآور یا جلوگیری از خطرات ناشناخته تا حد زیادی افزایش پیدا می‌کند.

ارتباط با هوش مصنوعی چگونه است؟

هوش مصنوعی (AI) دانش گسترده‌ای در تقلید از توانایی‌های انسان است. یادگیری ماشین زیرمجموعه خاصی از هوش مصنوعی به شمار می‌رود که به یک ماشین آموزش می‌دهد که چگونه یاد بگیرد.

به طور کلی می‌توان گفت مبحث یادگیری ماشین یک روش برای دستیابی به هوش مصنوعی است. البته در بسیاری از شاخه‌ها یادگیری ماشین بسیار پیشرفته و کارآمد است و بدون نیاز به مباحث هوش مصنوعی مورد استفاده قرار می‌گیرد.

هوش مصنوعی یعنی دستگاهی بتواند وظیفه‌ای را انجام دهد که برای آن به هوش انسان نیاز است. این علم برای اولین بار در سال ۱۹۵۰ مطرح شد. سیستم‌های هوش مصنوعی به طور کلی حداقل برخی از ویژگی‌ها و صفات زیر را از خود نشان می دهند:

  • برنامه ریزی
  • یادگیری
  • استدلال
  • حل مسئله
  • دانش و درک
  • و تا حدی هوش اجتماعی و خلاقیت.

برخی از این ویژگی‌ها برای اینکه یک ماشین قابلیت یادگیری داشته باشد، ضروری است.

کاربردهای یادگیری ماشین

از جمله برخی از معروف‌ترین مثال‌های علم یادگیری ماشین می‌توان به موارد زیر اشاره کرد.

  • پیش بینی آب و هوا: با استفاده از علم یادگیری ماشین و تجزیه تحلیل داده‌ها می‌توان عمل پیش بینی آب و هوا برای یک بازه‌ی زمانی مشخص را انجام داد.
  • تشخیص پزشکی: یکی از مهم‌ترین استفاده‌ها و کاربردهای علم هوش مصنوعی و یادگیری ماشین توانایی تشخیص پزشکی است. به این ترتیب کامپیوتر یا ماشین می‌تواند بیمار بودن یا نبودن یک فرد را از روی داده‌ها و علائم وی تشخیص دهد.
  • تجزیه و تحلیل داده‌ها در حجم زیاد: در حال حاضر حجم داده‌های موجود در جهان در تصور انسان نمی‌گنجد. انسان‌ها بدون کمک کامپیوترها نمی‌توانند از بهره‌ای از این داده‌ها ببرند. بنابراین یادگیری ماشین می‌تواند در زمینه انجام پردازش‌های مختلف روی آن‌ها کارآمد باشد.

کاربرد یادگیری ماشین در زندگی روزمره

شاید به این فکر کنید که آموزش دادن به ماشین‌ها تنها برای انجام کارهای بسیار تخصصی کاربرد دارد. اما در آینده‌ای نه چندان دور موتورهای جستجوی مختلف مانند گوگل و یوتیوب به این سیستم مجهز خواهند شد. همچنین در سیستم بانکداری نیز می‌توان به صورت گسترده از یادگیری ماشین استفاده کرد. شرکت‌هایی که خدمات مختلف ارائه می‌دهند نیز هر کدام می‌توانند به نحوی از این علم بهره ببرند. از این کاربردهای مختلف می‌توان نتیجه گرفت که علم یادگیری ماشین در زندگی آینده بشر تأثیر مستقیم خواهد داشت.

جمع‌بندی

یادگیری ماشین یک زیرمجموعه از علم هوش مصنوعی است که در سال‌های اخیر مورد توجه فراوانی واقع شده است. هدف ازاین علم دادن توانایی آموزش رویکردهای مختلف به ماشین‌هاست. از این علم در حالت پیشرفته آن برای پیش بینی بسیاری از مسائل می‌توان استفاده کرد. این علم به ما کمک می‌کند بخشی از وظایف را به ماشین‌ها محول کنیم.  حتی ممکن است در آینده بسیاری از نیازهای انسان به کمک هوش مصنوعی و قدرت یادگیری توسط ماشین‌ها برطرف شود. سرعت پیشرفت تکنولوژی زیاد است. بنابراین نیازی نیست مدت زیادی برای اینکه ببینیم کدام یک از پیشبینی‌ها در این باره به وقوع می‌پیوندد، منتظر بمانیم.

منبع – فاطمه مهراسبی – فنولوژی

یادگیری عمیق چیست؟

یادگیری عمیق

یادگیری عمیق زیرمجموعه‌ای از یادگیری ماشین است که در آن از الگوریتم‌هایی استفاده می‌شود که مغز انسان را شبیه‌سازی می‌کنند. این الگوریتم‌ها شبکه‌های عصبی مصنوعی نام دارند.

اندرو ان‌جی، توسعه‌ی یادگیری عمیق در بسیاری از سرویس‌های گوگل را پایه‌گذاری کرده است. او این ایده را به شکل زیر توصیف می‌کند:

«استفاده از شبیه‌سازی‌های مغز انسان برای:

– بهتر کردن و ساده سازی استفاده‌ی الگوریتم‌های یادگیری.

– ایجاد پیشرفت‌های انقلابی در زمینه‌ی هوش مصنوعی و یادگیری ماشین.

از نظر من این روش بهترین راه برای رسیدن به هوش مصنوعی واقعی است.»

این نوع یادگیری یک روش یادگیری ماشین است که به کامپیوترها یاد می‌دهد که کاری را که انسان‌ها انجام می‌دهند را انجام دهند. یادگیری با مثال‌ها. یادگیری عمیق تکنولوژی اصلی ساخت خودروهای خودران است. یادگیری عمیق به خودروها این توانایی را می‌دهد که تابلوها را شناسایی کنند. و یا تیر چراغ برق را از انسان تشخیص دهند. همچنین تکنولوژی کلیدی مورد استفاده در رابط کاربری صوتی تلفن‌های همراه، تبلت‌ها، تلویزیون‌ها و هندزفری‌ها است. مدتی است که یادگیری عمیق توجه بیش‌تری را به سمت خود جلب کرده است. چراکه نتایجی را با خود به همراه داشته است که هیچگاه در گذشته ممکن نبوده‌اند.

در این یادگیری، یک مدل کامپیوتری یاد می‌گیرد که دستورهای دسته‌بندی (classification) را مستقیما از تصویر، متن، یا صدا اجرا کند. مدل‌های یادگیری عمیق می‌توانند به بالاترین سطح دقت برسند. به طوری که گاهی از انسان‌ها هم بهتر عمل می‌کنند. مدل‌های یادگیری، با استفاده از گروه‌های عظیمی از داده‌ها و شبکه‌های عصبی با لایه‌های بسیار، تعلیم (train) داده می‌شوند.

دلیل اهمیت این نوع یادگیری چیست؟

این مدل یادگیری چگونه به این نتایج شگفت‌انگیز دست می‌یابد؟ در یک کلمه، در این مدل یادگیری،  دقت به سطح بسیار بالایی از تشخیص دست یافته است. این دقت، وسایل الکترونیکی را قادر می‌سازد که پاسخگوی سطح انتظارات کاربران باشند. همچنین داشتن چنین دقتی، در کاربری‌های حساسی چون خودروهای خودران بسیار حیاتی است. پیشرفت‌های اخیر در یادگیری عمیق به جایی رسیده است که در بعضی کارها مانند دسته‌بندی کردن تصاویر، یادگیری عمیق بهتر از انسان عمل می‌کند.

در این مورد،  اولین بار در دهه‌ی ۸۰ میلادی نظریه‌پردازی شد. با این حال، دو دلیل اصلی وجود دارد که تکنولوژی یادگیری عمیق تنها اخیرا سودمند ظاهر شده است:

  • یادگیری عمیق نیاز به مقدار عظیمی از داده‌ها دارد. برای مثال، برای توسعه‌ی خودروهای خودران نیاز به میلیون‌ها تصویر و هزاران ساعت ویدیو است.
  • این یادگیری، به قدرت پردازشی بسیار بالایی نیاز دارد. واحدهای پردازنده‌ی گرافیکی قدرتمندی که در یادگیری عمیق استفاده می‌شوند، هزینه‌ی بالایی دارند. همچنین تیم‌های توسعه می‌توانند زمان تعلیم یافتن مدل‌ها را از هفته‌ها به ساعت‌ها یا کمتر تبدیل کنند.

کاربردهای یادگیری عمیق چیست؟

این مدل یادگیری ذکر شده در صنعت کاربردهای بسیاری دارد. از رانندگی خودکار گرفته تا تکنولوژی‌های به کار رفته در وسایل پزشکی.

  • کاربرد در رانندگی خودکار: محققین خودروها در حال استفاده از یادگیری عمیق برای شناسایی اشیایی مانند تابلوها و چراغ‌های راهنمایی هستند. علاوه بر این، یادگیری عمیق در تشخیص عابرین پیاده استفاده می‌شود که به کاهش تصادفات کمک می‌کند.
  • کاربرد در مسائل نظامی و هوایی: این الگوریتم‌ها می‌توانند تصاویر ماهواره‌ای را آنالیز کنند و نقاط امن و ناامن را برای سربازان شناسایی کند.
  • کاربرد در تحقیقات پزشکی: محققان سرطان از یادگیری عمیق برای تشخیص خودکار سلول‌های سرطانی استفاده می‌کنند. در دانشگاه کالیفرنیا (UCLA) میکروسکوپ پیشرفته‌ای ساخته شده است که داده‌هایی با بعد بالا تولید می‌کند. از این داده‌ها برای تعلیم مدل‌های یادگیری عمیق در تشخیص دقیق سلول‌های سرطانی استفاده می‌شود.

و کاربردهای دیگر

  • کاربرد در دستیارهای مجازی: دستیارهای مجازی مانند الکسا، سیری، و کورتانا، از یادگیری عمیق برای پردازش زبان طبیعی و برقراری ارتباط موثر با انسان‌ها استفاده می‌کنند.
  • کاربرد در ترجمه: به روشی مشابه، الگوریتم‌های یادگیری عمیق می‌توانند زبان‌های مختلف را به یکدیگر ترجمه کنند. این کار می‌تواند برای بسیاری از مسافران و تاجران، و حتی دولت‌ها مفید باشد.
  • استفاده از این نوع یادگیری در چت بات‌ها: از چت بات‌های مبتنی بر هوش مصنوعی در جهت ارائه‌ی پشتیبانی آنلاین برای کاربران استفاده می‌شود. این چت بات‌ها به دلیل بهره بردن از تکنولوژی یادگیری عمیق می‌توانند یک پشتیبانی هوشمند و کارآمد ارائه کنند.
  • کاربرد یادگیری عمیق در رنگ کردن تصاویر سیاه و سفید: تبدیل عکس‌های سیاه و سفید به تصاویر رنگی، عملی است که در گذشته به صورت دستی انجام می‌شده است. این الگوریتم‌ها می‌توانند تصاویر سیاه و سفید را با توجه به اشیایی که در آن‌ها وجود دارد رنگ‌آمیزی کنند. و تصاویری رنگی تولید کنند. نتایج این کار بسیار دقیق و حیرت‌انگیز است.
  • کاربرد یادگیری عمیق در تشخیص چهره: با استفاده از این الگوریتم‌ها نه تنها در کاربردهای امنیتی، بلکه در کاربردهایی مثل تگ کردن افراد در تصاویر فیسبوک استفاده می‌شود. از تکنولوژی تشخیص چهره می‌توان در پرداخت وجوه در فروشگاه‌ها نیز استفاده کرد. چالشی که در تشخیص چهره با آن مواجه هستیم، این است که بتوان یک فرد را در شرایط مختلف شناسایی کرد.  مثلا با مدل مو یا ریش متفاوت و با عینک و بدون آن، یا در شرایط نوری ضعیف.

روش کار یادگیری عمیق چیست؟

حال که فهمیدیم این نوع یادگیری چیست، می‌خواهیم بدانیم که روش کار آن چگونه است. جف دین (Jeff Dean)  می‌گوید: «وقتی واژه‌ی یادگیری عمیق را می‌شنوید، آن را یک شبکه‌ی بزرگ عصبی در نظر بگیرید. واژه‌ی «عمیق» عموما به تعداد لایه‌های پنهان شبکه‌ی عصبی اشاره دارد». این شبکه‌های عصبی می‌توانند از دو یا سه لایه، تا بیش از ۱۰۰ لایه داشته باشد. به همین دلیل، اغلب، مدل‌های یادگیری عمیق را «شبکه‌های عصبی عمیق» می‌گویند.

این نوع یادگیری مسائلی که دارای ورودی‌ها  و خروجی‌های آنالوگ هستند را حل میکند. یعنی ما با تعداد محدودی مقدار سر و کار نداریم؛ بلکه با داده‌های پیکسلی، نوشته‌ها با داده‌های متنی، و فایل‌ها با داده‌های صوتی سر و کار داریم.

شبکه‌ی عصبی پیچشی یا CNN، یکی از انواع شبکه‌های عصبی عمیق

یکی از مشهورترین انواع شبکه‌های عصبی عمیق، شبکه‌ی عصبی پیچشی یا همگشتی (Convolutional Neural Network) نام دارد که به اختصار ConvNet یا CNN نیز می‌گویند. این روش موفقیت‌های زیادی را کسب کرده است. چرا که در CNN، با افزایش داده‌ها و اندازه‌ی مدل، شبکه‌ی عصبی گسترش می‌یابد و خود را تطبیق می‌دهد. همچنین می‌تواند با روش انتشار معکوس (backpropagation) نیز تعلیم یابد.

CNNها نیاز به استخراج ویژگی‌ها را حذف می‌کند. به این معنا که برای دسته‌بندی تصاویر، نیازی به مشخص کردن ویژگی‌های آن نخواهیم داشت. شبکه‌ی CNN، به شکل خودکار، ویژگی‌های تصاویر را به صورت مستقیم استخراج می‌کند. خصوصیاتی که CNN دارد، باعث شده است که در کارهای بینایی ماشین، مانند دسته‌بندی کردن اشیا، بسیار دقیق عمل کند.

CNNها یاد می‌گیرند که ویژگی‌های مختلف یک تصویر را با استفاده از ده‌ها و صدها لایه‌ی مخفی شبکه‌ی عصبی تشخیص دهند. هر لایه‌ی اضافی، پیچیدگی ویژگی‌ها را افزایش می‌دهد. برای مثال، اولین لایه می‌تواند یاد بگیرید لبه‌های اشیا را تشخیص دهد. در حالی که آخرین لایه یاد می‌گیرد شکل‌ها و خمیدگی‌های پیچیده‌ی اشیا را شناسایی کند.

تفاوت یادگیری ماشین با یادگیری عمیق چیست؟

این یادگیری نوع خاصی از یادگیری ماشین است. روند کار یادگیری ماشین با استخراج دستی ویژگی‌ها شروع می‌شود. سپس با استفاده از این ویژگی‌ها مدلی برای یادگیری ماشین طراحی می‌شود. اما روند کار یادگیری عمیق به این صورت است که ویژگی‌های مربوطه به صورت خودکار توسط کامپیوتر شناسایی و استخراج می‌شوند. علاوه بر آن در یادگیری عمیق از یادگیری انتهابه‌انتها (end-to-end learning) استفاده می‌شود؛ به این معنا که داده‌‎های خام به شبکه‌ی عصبی وارد می‌شود و به آن یک وظیفه داده می‌شود، مثلا دسته‌بندی. مدل یادگیری عمیق، خود یاد می‌گیرد که چگونه این کار را به طور خودکار انجام دهد.

تفاوت کلیدی دیگر، این است که این نوع از یادگیری خود را با افزایش حجم داده‌ها تطبیق می‌دهد؛ در حالی که یادگیری کم‌عمق (shallow learning) در این مورد با محدودیت مواجه است. منظور از یادگیری کم‌عمق، روش‌های یادگیری ماشینی است که اگر در آن‌ها تعداد داده‌ها از حدی عبور کند، منحنی یادگیری روند افزایشی خود را از دست می‌دهد و ثابت می‌شود. مزیت کلیدی یادگیری عمیق این است که با افزایش حجم داده‌ها، بهبود عملکرد شبکه‌ی عصبی ادامه پیدا می‌کند.

اندرو ان‌جی در این باره می‌گوید: «در اکثر روش‌های یادگیری قدیمی، عملکرد تا میزان محدودی افزایش می‌یابد و بعد از آن ثابت می‌گردد. یادگیری عمیق، اولین الگوریتم یادگیری است که در آن با افزایش تعداد داده‌ها، عملکرد بهتر و بهتر می‌شود.»

انتخاب بین دو یادگیری ماشین و عمیق

یادگیری ماشین روش‌ها و مدل‌های متنوعی با توجه به کاربری، حجم داده‌هایی که پردازش می‌کنیم، و نوع مسئله‌ای که می‌خواهیم حل کنیم ارائه می‌دهد. اما برای داشتن یک مدل کارآمد یادگیری عمیق، نیاز به حجم بسیار زیادی داده، مثلا هزاران یا میلیون‌ها تصویر داریم تا مدل را تعلیم دهیم؛ علاوه بر آن، به پردازنده‌های گرافیگی قدرتمندی نیز برای پردازش چنین داده‌هایی نیاز داریم.

زمانی می‌توانیم بین دو یادگیری ماشین و عمیق، یادگیری عمیق را انتخاب کنیم که یک پردازشگر گرافیکی قدرتمند و تعداد زیادی داده‌ی کلاس‌بندی‌شده داریم. اما اگر هیچ‌کدام از این‌ها را نداریم، بهتر است از یادگیری ماشین استفاده کنیم. یادگیری عمیق معمولا از یادگیری ماشین پیچیده‌تر است، بنابراین برای گرفتن یک نتیجه‌ی مطلوب نیاز به هزاران تصویر برای تعلیم مدل خواهیم داشت. داشتن پردازنده‌ی قدرتمند، به ما کمک می‌کند که این داده‌ها را در زمان کم‌تری آنالیز کنیم.

روش ساخت و تعلیم مدل‌های این نوع یادگیری چیست؟

دو روش معمول برای استفاده از این مدل یادگیری در دسته‌بندی اشیا (object classification) به شرح زیر است:

یادگیری از صفر (training from scratch)

برای تعلیم یک شبکه‌ی عمیق از صفر، باید یک مجموعه‌ی عظیم از داده‌های کلاس‌بندی‌شده فراهم کنیم. همچنین باید یک شبکه‌ی عصبی طراحی کنیم تا از طریق این داده‌ها مدل یادگیری تعلیم یابد. این روش برای برنامه‌های جدید یا برنامه‌هایی که خروجی‌های زیادی دارند مناسب است. به دلیل این که تعداد داده‌ها بسیار زیاد است و عملیات تعلیم یافتن روزها و هفته‌ها طول می‌کشد، از این روش کم‌تر استفاده می‌شود.

یادگیری انتقالی (transfer learning)

در بسیاری از برنامه‌های یادگیری عمیق از روش یادگیری انتقالی استفاده می‌شود؛ فرایندی که شامل تعدیل و تنظیم کردن مدلی است که از قبل تعلیم یافته است. به این شکل که ما با یک شبکه‌ی عصبی آماده، مانند AlexNet یا GoogLeNet، شروع می‌کنیم و آن را با داده‌های جدیدمان تنظیم می‌کنیم. بعد از این که تغییرات لازم را بر شبکه‌ی عصبی اعمال کردیم، می‌توانیم از آن برای اجرای دستور مورد نظرمان استفاده کنیم. مزیت این روش این است که به دلیل نیاز به داده‌های کم‌تر (مثلا به جای پردازش میلیون‌ها تصویر، چند هزار تصویر را پردازش می‌کنیم)، زمان تعلیم به دقیقه‌ها یا ساعت‌ها کاهش می‌یابد.

منبع: محمد عرب زاده – فنولوژی

شبکه عصبی عمیق چیست؟

شبکه عصبی عمیق

یکی از مهم‌ترین و جدیدترین مباحث در یادگیری ماشینی و یادگیری عمیق، مبحث شبکه عصبی عمیق است.شبکه‌ عصبی، دسته‌ای از الگوریتم‌هاست که برای شناسایی و تشخیص الگوها استفاده می‌شود. شبکه‌ی عصبی ساختاری شبیه به مغز انسان دارد و نام‌گذاری آن نیز به همین دلیل است. انواع داده‌ها مانند متن، تصویر، فیلم و … قابل تبدیل به بردارهایی با مولفه‌های عددی هستند. الگوهایی که یک شبکه‌ عصبی تشخیص می‌دهد، به شکل مولفه‌های عددی یک بردار چند بعدی هستند. بنابراین، شبکه‌ عصبی، با استفاده از یک ابزار ادارکی ماشینی (machine perception)، داده‌های خام را دریافت می‌کند و سعی می‌کند الگوهای موجود در این داده‌ها را شناسایی کند.

با استفاده از الگوریتم‌ های شبکه عصبی، می‌توان اقدام به دسته‌بندی (classification) یا خوشه‌بندی (clustering) داده‌ها کرد. شبکه‌ عصبی را می‌توان مانند یک فیلتر دانست که داده‌های عبوری از خودش را دسته‌بندی یا خوشه‌بندی می‌کند. برای مثال، می‌توان مجموعه‌ای از داده‌های کلاس‌بندی‌شده (labeled) را به شبکه عصبی داد تا با این ورودی آموزش ببینید. سپس، می‌توان این انتظار را داشت که داده‌ای جدید به شکل خودکار کلاس‌بندی شوند.

تفاوت یادگیری عمیق و DeepLerning algorithm

وقتی از عبارت یادگیری عمیق (Deep Learning) استفاده می‌کنیم، عمدتاً مقصودمان همان شبکه عصبی عمیق (Deep Neural Network) است. البته‌ی اگر بخواهیم دقیق‌تر عنوان کنیم، تفاوت یادگیری عمیق و شبکه عصبی در آن است که یادگیری عمیق محدوده‌ای گسترده‌تر از شبکه عصبی دارد و الگوریتم‌های یادگیری تقویتی (reinforcement learning) را نیز در برمی‌گیرد. به این ترتیب تفاوت شبکه عصبی با یادگیری عمیق روشن شد و نباید آن‌ها را با هم اشتباه بگیریم. اما سوال مهمی که مطرح می‌شود، آن است که به وسیله‌ی یادگیری عمیق، چه نوع مسائلی را می‌توان حل کرد؟ برای جواب به این سوال، باید ابتدا به دو سوال دیگر جواب دهیم:

  • چه کلاس‌بندی‌هایی برای ما اهمیت دارد؟ برای مثال، ممکن است در فیلتر ایمیل، اسپم بودن یا اسپم نبودن مهم باشد. یا ممکن است در سیستم‌های مدیریت مشتری، شاد بودن یا نبودن مشتری به عنوان کلاس‌های ما مطرح شود.
  • آیا داده‌های کلاس‌بندی‌شده برای آموزش به سیستم (train) در اختیار داریم؟ به طور دقیق‌تر، آیا قادر به یافتن یا ساختن یک دیتاست کلاس‌بندی‌شده هستیم یا نه؟

 انواع  دسته بندی (classification)

در روش دسته‌بندی، ما یک مجموعه‌ از داده‌های کلاس‌بندی‌شده (labeled datasets) در اختیار شبکه‌ی عصبی قرار می‌دهیم و انتظار داریم که شبکه، رابطه‌ی خروجی و داده‌های ورودی را پیدا کند. نام دیگر این روش، یادگیری با ناظر (supervised learning) است.

چند نمونه از کاربردهای روش دسته‌بندی:

  • تشخیص چهره و بدن فرد در یک تصویر، تشخیص حالت صورت (مثلا خوشحال یا عصبانی)
  • تشخیص اشیای مختلف در تصاویر
  • تشخیص حرکات در ویدیو
  • شناسایی صدا، تبدیل صوت به متن، تشخیص احساسات در صدا
  • دسته‌بندی ایمیل‌ها، تشخیص احساسات داخل متن (مثلا احساس مشتری نسبت به محصول در متن بازخورد او)

انواع شبکه عصبی عمیق – خوشه بندی (clustering)

خوشه‌بندی به عبارت ساده، پیدا کردن نقاط اشتراک است. در روش خوشه‌بندی، نیازی به داده‌های اولیه کلاس‌بندی‌شده نداریم. نام دیگر این روش، یادگیری بدون ناظر (unsupervised learning) است. حجم عظیمی از داده‌هایی که در دنیا وجود دارند، داده‌های کلاس‌بندی‌نشده (Unlabeled data) هستند. بر اساس یک قانون کلی در یادگیری ماشینی، هر چقدر میزان داده‌های ورودی بیشتر باشد، دقت مدل‌سازی ما نیز بیشتر می‌شود. بنابراین، در روش‌های یادگیری بدون ناظر، به دلیل دسترسی به حجم بیشتری از داده‌ها، به مدل‌های دقیق‌تری دست می‌یابیم.

چند نمونه از کاربردهای روش خوشه‌بندی:

  • جست‌وجو: مقایسه‌ی اسناد، تصاویر و صداها با یکدیگر برای یافتن موارد مشابه
  • تشخیص تضادها: پیدا کردن ناسازگاری‌ها در یک مجموعه داده

انواع شبکه عصبی عمیق – رگرسیون (regressions)

رگرسیون نیز مانند روش دسته‌بندی، نوعی روش یادگیری با ناظر است. تفاوت اصلی رگرسیون با دسته‌بندی در نوع داده‌های ورودی است. داده‌های ورودی در روش دسته‌بندی (classification)، داده‌هایی گسسته هستند. در حالی‌‌که داده‌های ورودی در روش رگرسیون (regressions)، پیوسته هستند.

چند نمونه از کاربردهای روش رگرسیون:

  • خرابی سخت‌افزارها (دیتا سنتر، کارخانه‌ها، خطوط حمل‌ونقل عمومی و …)
  • بیماری‌ها (سکته مغزی، سکته قلبی)
  • محاسبه احتمال خروج و عدم رضایت مشتری از وبسایت بر اساس رفتار او
  • پیش‌بینی میزان گردش مالی

هرچقدر بتوانیم پیش‌بینی‌های دقیق‌تری داشته باشیم،‌ بهتر می‌توانیم عمل کنیم و از وقوع حوادث نامطلوب پیشگیری کنیم. با استفاده از شبکه‌ی عصبی، با پیش‌بینی‌های مختلف می‌توانیم دنیایی با اتفاقات عجیب و غیرمترقبه‌ی کم‌تری بسازیم.

اجزای DeepLerning algorithm چیست؟

یادگیری عمیق، در واقع عبارتی است که ما برای شبکه‌های عصبی عمیق استفاده می‌کنیم. منظور از عمیق بودن در این‌جا، چند لایه بودن این شبکه‌هاست. لایه‌های شبکه‌ی عصبی، از گره‌ها (nodes) تشکیل شده‌اند. یک گره، مانند نورون‌های مغز انسان، مکانی برای انجام محاسبات است.

تصویر زیر، فرآیندی را که داده‌ها در یک شبکه‌ی عصبی طی می‌کنند، نشان می‌دهد. 

در یک گره، داده‌ی ورودی در یک وزن (weight) ضرب می‌شود. این وزن، تاثیر آن داده را نشان می‌دهد. وزن می‌تواند تاثیر یک داده را افزایش یا کاهش دهد. پس از آن، مجموع داده‌های ضرب‌شده در وزنشان محاسبه می‌گردد. در آخر هم برای رسیدن به خروجی، مجموع به دست آمده، از یک تابع فعال‌ساز (Activation Function) عبور می‌کند.

مفاهیم کلیدی در شبکه‌ عصبی چیست؟

تفاوت اصلی شبکه‌های عمیق عصبی و شبکه‌های عصبی معمولی در تعداد لایه‌های درونی آن‌هاست. شبکه‌ی عصبی معمولی حداکثر از سه لایه تشکیل شده‌است؛ اما، در شبکه‌ی عمیق عصبی، داده‌ها باید از یک شبکه‌ با چندین لایه عبور کنند.

در یک شبکه‌ی عمیق عصبی، در هر لایه، بر روی ویژگی خاصی از داده‌ها کار می‌شود. هر چقدر در شبکه‌ی عصبی پیش برویم، شبکه قادر به تشخیص ویژگی‌های پیچیده‌تری می‌شود. این فرآیند، سلسله‌مراتب ویژگی‌ها (feature hierarchy) نام دارد. این ویژگی شبکه‌ی عصبی، باعث می‌شود که بسیار قدرتمند شوند و داده‌هایی با ویژگی‌های متعدد (high-dimensional data) را پردازش کند.

یکی از ویژگی‌های دیگر شبکه‌ی عصبی آن‌ است که این شبکه می‌تواند داده‌های کلاس‌بندی‌نشده یا ساختارنیافته (unlabeled یا unstructured) را خوشه‌بندی کند. برای مثال، شبکه‌ی عصبی مجموعه‌ای از عکس‌های مختلف را دریافت می‌کند و آن‌ها را به خوشه‌های عکس‌های مادربزرگ شما، عکس‌های ماشین، عکس‌های کوه و … تقسیم‌بندی می‌کند؛ بدون آن‌که، نیاز به دخالت انسانی یا داده‌های کلاس‌بندی‌شده باشد.

منبع : علیرضا کریمی – فنولوژی

ربات GPT-3 چیست و چطور آینده هوش مصنوعی را دگرگون می‌کند؟

ربات GPT-3 چیست؟

ربات GPT-3 چند وقتی است که توجه دنیای تکنولوژی به رباتی تازه توسعه‌یافته را به خود جلب کرده است. این ربات به عقیده کارشناسان، قرار است دنیای هوش مصنوعی را دگرگون کند. GPT-3 رباتی است که مهارت فراوان در ایجاد محتوا در ساختار رایج زبان انسانی و ماشینی دارد. بدون شک ترانسفورمرهای GPT بسیار پیشرفته‌تر از پیشینیان خود ظاهر شده اند.

شرکت OpenAI مسئولیت ساخت GPT-3 و تولید متنرا برعهده دارد. شرکتی تحقیقاتی که ایلان ماسک یکی از موسسین آن می باشد. این شرکت، بعنوان یکی ستون‌های اصلی پیشرفت هوش مصنوعی در سال‌های آتی تلقی می‌شود.

متاسفانه اطلاعات اندکی راجع به کارهایی که GPT-3 می‌تواند (و نمی‌تواند) انجام دهد وجود دارد. برخی عقیده دارند به خاطر هیجان بیش از حد، برخی از برجسته‌ترین توانایی‌های ربات OpenAI نادیده گرفته شده است.

آینده هوش مصنوعی

عبارت Generative Pre-trained Transformer، یا GPT-3 در واقع ورژن سوم از GPT-3 است که هنوز در دسترس عموم قرار نگرفته است. نام‌گذاری GPT-3 بدان معناست که می‌تواند با استفاده از الگوریتم‌هایی که از پیش تعلیم دیده‌اند، متن تولید کند. این الگوریتم‌ها از قبل، اطلاعات لازم برای انجام وظایف خود را دریافت کرده‌اند. این ربات با ۵۷۰ گیگابایت اطلاعات جمع‌آوری شده تعلیم داده شده است. این اطلاعات از سطح اینترنت (چه در دیتابیس‌های عمومی و چه خصوصی) جمع آوری شده اند. مواردی همچون متون ویکیپدیا و سایر متن در این ربات مورد استفاده قرار گرفته اند.

اگر از این ربات یک سوال بپرسید، می‌توانید منتظر پاسخی بسیار کارآمد باشید. اگر هم از آن بخواهید که یک خلاصه از مقاله یا یک شعر بنویسد، دقیقا همین‌ کارها را برایتان خواهد کرد. اگر فنی‌تر با موضوع برخورد کنیم، این ربات به عنوان بزرگ‌ترین شبکه عصبی مصنوعی جهان شناخته می‌شود.

این ربات قادر به انجام چه کاریست؟

ربات GPT-3 قادر به انجام هرچیزی درون ساختار زبان است. بنابراین می‌تواند:

  • به سوالات پاسخ دهد
  • مقاله بنویسد
  • متون طولانی را خلاصه کند
  • زبان‌ها را ترجمه کند
  • نت‌ بردارد
  • و حتی کد کامپیوتری بنویسد.

همچنین این ربات قادر به ساخت اپلیکیشنی با کارکرد بسیار مشابه به اینستاگرام است. ربات  GPT-3 در این راهکار، از پلاگین Figma استفاده کرده است که به صورت گسترده برای طراحی اپلیکیشن، استفاده می‌شود.

ضمناً سورس کد این ربات هنوز به صورت عمومی منتشر نشده است. و دسترسی به GPT-3 تنها از طریق رابط برنامه‌نویسی توسعه یافته از سوی OpenAI امکان‌پذیر است. از زمان ارائه GPT-3، شاهد ظهور انبوهی از متون مختلف مانند شعر، نثر، گزارش‌های خبری و نوشته‌های علمی-تخیلی بوده‌ایم.

GPT-3 یا تولید متن چطور کار می‌کند؟

ربات GPT-3 مجهز به یک مدل پیش‌بینی زبان است. این یعنی GPT-3 یک ساختار الگوریتم است که طراحی شده تا یک تکه از زبان (یعنی یک ورودی) را برداشته و آن را تبدیل به چیزی کند که بنابر پیش‌بینی خودش، کارآمدترین بخش از زبان برای کاربر است.

تمام این‌ها به لطف متونی است که در فاز «پیش‌تعلیم» به صورت گسترده در اختیار هوش مصنوعی قرار گرفته‌اند. برای یادگیری اینکه ساختارهای رایج زبان -مانند جملات- چطور کار می‌کنند،GPT-3  از تحلیل معنایی استفاده می‌کند. این یعنی ربات نه‌تنها کلمات و معنای آن‌ها را تحلیل می‌کند، بلکه درکی کلی از چگونگی استفاده از کلمات در کنار کلمات دیگر متن به دست می‌آورد.

ربات GPT-3 شامل یک نوع از یادگیری ماشین است که بدون نیاز به نظارت،‌ روند یادگیری را طی می‌کند. این به این دلیل است که هیچ‌کدام از داده‌های آموزشی ربات «درست» یا «غلط» تلقی نمی‌شوند. تمام اطلاعاتی که ربات برای محاسبه سازگاری خروجی با نیاز کاربر لازم دارد، درون خود متن است. و بنابراین نظارت انسانی ضروری به حساب نمی‌آید.

مقدمات GPT-3  این کار را با مطالعه موارد استفاده از کلمات و جملات آغاز، سپس آنها را از یکدیگر جدا و دوباره بازنویسی می‌کند.

باید اشاره کرد که کار GPT-3 آنقدر هم تازه نیست و برای سالیان متمادی با مدل‌های مختلف پیش‌بینی زبان مواجه بوده‌ایم. اما وزنی که الگوریتم به صورت پویا در حافظه خود ذخیره کرده و برای هر کوئری به کار می‌گیرد معادل ۱۷۵ میلیارد است. یعنی ۱۰ برابر بیشتر از نزدیک‌ترین رقیبش که توسط شرکت انویدیا توسعه یافته است.

رایج‌ترین مشکلات این ربات چیست؟

توانایی GPT-3 در تولید زبان به عنوان برترین نمونه در دنیای هوش مصنوعی تلقی می‌شود. اما باید به چند نکته دیگر نیز توجه داشت. آقای آلتمن، مدیرعامل OpenAI، در این مورد، جمله معروفی دارد.«هیجان برای GPT-3 بیش از حد است. هوش مصنوعی قرار است چهره جهان را دگرگون کند. اما GPT-3 صرفا یک گام کوچک و زودهنگام در این مسیر است».

نخستین مشکل GPT-3 اینست که اکنون ابزاری بسیار گران‌قیمت به حساب می‌آید. در واقع به این خاطر که به انبوهی از قدرت پردازشی برای انجام وظایف خود نیاز دارد. این یعنی هزینه استفاده از آن از بودجه بسیاری از سازمان‌های کوچک فراتر خواهد بود.

مشکل دوم هم سیستم بسته و جعبه سیاه گونه GPT-3 است. شرکت  OpenAIهیچوقت از جزییات مربوط به چگونگی کارکرد الگوریتم خود پرده برنداشته است. بنابراین هرکسی که از آن برای پاسخ دادن به سوالات یا ساخت محصولات مفید استفاده می‌کند، نخواهد دانست این ربات چطور طراحی شده است.

مشکل سوم، بی‌نقص نبودن خروجی سیستم است. اگرچه GPT-3 می‌تواند وظایفی مانند نوشتن متون کوتاه یا اپلیکیشن‌های ساده را برعهده بگیرد، هنگامی که متون طولانی‌تر و پیچیده‌تر هستند، کارایی کمتر میشود. در واقع خروجی‌های این ربات در چنین حالتی کاملاً بی‌معنی هستند.

در مجموع و برای جمع‌بندی می توان گفت که مقدمات GPT-3 نتایجی تولید می‌کند که بسیار بهتر از آن‌چه قبلا دیده‌ایم، هستند. هرکسی که نتایج زبان هوش مصنوعی را دیده باشد می‌داند که نتایج می‌توانند متغیر باشند، اما خروجی GPT-3 به شکلی بدون تردید مثل گامی بلند به سمت جلو به نظر می‌رسند. زمانی که بتوانیم شاهد استفاده عمومی از این ربات باشیم، آن موقع است که عملکرد ربات GPT-3 حتی از قبل هم تحسین‌برانگیزتر خواهد شد.

منبع: شایان ضیایی- دیجیاتو

هوش مصنوعی چیست؟

هوش مصنوعی چیست؟

هوش مصنوعی (Artificial Intelligence)، هوشی است که مربوط به ماشین و رایانه است؛ بر خلاف هوش طبیعی که متعلق به انسان و حیوان است.

اثر هوش مصنوعی (AI effect) چیست؟

به مرور و هر چه کامپیوترها و ماشین‌ها هوشمندتر می‌شوند، اعمالی که قبلا قادر به انجام آن بودند دیگر هوشمند محسوب نمی‌شوند! در واقع پژوهشگران به این نتیجه می‌رسند که کارهای قبلی واقعا هم هوشمند نبوده‌اند. به این پدیده اثر هوش مصنوعی می‌گویند. در حقیقت هر گاه یک فناوری و سطحی از هوشمندی کاملا برای ما روتین شود، دیگر آن را AI نمی‌نامیم و به دنبال دستیابی به قابلیت‌های عجیب‌تر هستیم. به عنوان مثال تکنولوژی OCR (خواندن نوشته‌های کاغذ توسط رایانه) دیگر هوش مصنوعی به حساب نمی‌آید چون یک عمل کاملا روتین شده است. برخی از فناوری‌های جدیدی که AI به حساب می‌آیند عبارتند از:

  • توانایی فهمیدن صحبت‌های انسان (پردازش زبان طبیعی یا NLP)
  • بازی در رقابت‌های استراتژیک مانند شطرنج و Go
  • خودروهای خودران
  • مسیریابی هوشمند در شبکه‌های توزیع محتوا یا CDN
  • شبیه‌سازی‌های پیچیده جنگی

هوش مصنوعی از سال ۱۹۵۵ به عنوان یک رشته مشخص آکادمیک به وجود آمده است. از آن زمان تا کنون، AI با فراز و نشیب‌های مختلفی روبرو بوده است. گاهی خوش‌بینی زیادی نسبت به این تکنولوژی به وجود آمده است )به این دوران موج خوش‌بینی یا waves of optimism می‌گویند)، گاهی هم پژوهشگران کاملا ناامید شده‌اند (که به این دوران زمستان AI یا AI winter می‌گویند) . در طول تاریخ، فیلدهای مختلف کاری در هوش مصنوعی به وجود آمده‌اند که معمولا هم با یکدیگر تفاوت زیادی داشته‌اند و یکپارچه نشده‌اند. برخی از این فیلدهای اهداف گوناگونی را دنبال کرده‌اند (مانند یادگیری ماشین و رباتیک، (برخی نیز از تکنیک‌های متفاوتی استفاده کرده‌اند (مانند منطق و شبکه عصبی)

اهداف AI چه چیزهایی هستند؟

اهداف و مسئله‌های تاریخی در حوزه AI عبارتند از:

  • توانایی استدلال کردن (reasoning)
  • ایجاد درخت دانش به منظور استفاده از دانش قبلی برای حل مسائل جدید
  • توانایی برنامه ریزی و تعیین استراتژی
  • توانایی یادگیری
  • پردازش زبان طبیعی
  • درک محیط پیرامون (machine perception)

و بزرگ‌ترین هدف متخصصان هوش مصنوعی نیز دستیابی به یک هوش عمومی (General AI) هست که توانایی همه‌ی کارهای بالا را با هم دارد و کاملا هوشمند است.

AIیک علم بین رشته‌ای است و در آن از علوم مختلفی مانند علوم کامپیوتر، مهندسی اطلاعات، ریاضیات، روانشناسی، زبان شناسی و فلسفه استفاده می‌شود. AI با این پیش فرض به وجود آمده است که ما می‌توانیم به طور کامل هوش انسانی را شبیه سازی کنیم و به شکل یک AI درآوریم. شبیه سازی AI مسائل فلسفی و اخلاقی زیادی نیز به وجود آورده است؛ عده‌ای عقیده دارند که AI خطری برای بشریت به حساب می‌آید. برخی نیز می‌پندارند هوش مصنوعی یک بیکاری عمومی به وجود خواهد آورد (به خاطر گرفتن جای انسان‌ها در انجام بسیاری از امور)

هوش مصنوعی چیست؟

AI شاخه‌‌ای از علوم کامپیوتر است که به مطالعه‌‌ی عامل‌‌های هوشمند (intelligent agents) می‌‌پردازد. عامل هوشمند هر وسیله‌‌ای است که با درک دنیای پیرامون، احتمال دستیابی به اهدافش را بیشینه می‌‌کند. یک تعریف واضح‌‌تر از هوش مصنوعی عبارت است از: AI توانایی یک سیستم برای تفسیر داده‌‌های خارجی است؛ این سیستم با دیدن داده‌‌ها، یاد می‌‌گیرد و آموخته‌‌های خود را برای رسیدن به اهداف خاصی به کار می‌‌بندد.

مقدمات هوش مصنوعی

در سال‌های ابتدایی قرن ۲۱ شاید کم‌تر کسی در مورد اینترنت اطلاعات زیادی داشت و با مفاهیمی مثل پهنای باند و روتر آشنا بود؛ اما این مفاهیم دیگر جزء بدیهیات برای همگان شده‌اند. امروز نیز هوش مصنوعی شاید یک مفهوم قابل فهم عمومی نباشد؛ اما در آینده‌ای نزدیک، شرکت‌های زیادی در محصولات خود از هوش مصنوعی استفاده می‌کنند و ما ناگریزیم با این مفهوم آشنا شویم. در ادامه مفاهیم پایه‌ای و مقدماتی AI را توضیح می‌دهیم:

الگوریتم

مهم‌ترین مفهوم در AI، الگوریتم است. الگوریتم فرمول‌های ریاضی هستند که یک کامپیوتر معمولی را قادر می‌سازند تا به صورت هوشمندانه به حل مسئله بپردازد. الگوریتم‌ها در واقع کامپیوتر را قادر می‌کنند تا به صورت مستقل به یادگیری بپردازد.

یادگیری ماشین

یادگیری ماشین همان هوش مصنوعی نیست! بلکه یادگیری ماشین تنها بخشی از AI است؛ اما موضوعات آن‌ها همپوشانی زیادی دارند. یک الگوریتم یادگیری ماشین، با دیدن مجموعه‌ای از داده‌ها می‌تواند به یک هوشمندی نسبی برسد. به عنوان مثال کافی است عکس گربه‌های زیادی را به الگوریتم یادگیری ماشین نشان دهید تا از آن پس قادر به تشخیص هر گربه‌ای باشد.

شبکه عصبی

اگر بخواهیم الگوریتم‌های AI دقت و درستی بالاتری داشته باشند، باید از شبکه عصبی استفاده کنیم. شبکه عصبی بسیار شبیه به سیستم عصبی انسان است. یک شبکه عصبی با شکستن داده‌ها و تجزیه و تحلیل آن‌ها در لایه‌های مختلف از شبکه، کامپیوتر را قادر می‌سازد تا مسائل پیچیده را حل کند.

یادگیری عمیق

یادگیری عمیق (Deep Learning) بخشی از خانواده‌ی بزرگ‌تر یادگیری ماشین است که بر روش‌هایی تمرکز دارد که مبتنی بر شبکه‌های عصبی مصنوعی هستند. یادگیری عمیق تکنولوژی اصلی ساخت خودروهای خودران است؛ یادگیری عمیق به خودروها این توانایی را می‌دهد که تابلوها را شناسایی کنند، و یا تیر چراغ برق را از انسان تشخیص دهند. یادگیری عمیق تکنولوژی کلیدی مورد استفاده در رابط کاربری صوتی تلفن‌های همراه، تبلت‌ها، تلویزیون‌ها و هندزفری‌ها است. مدتی است که یادگیری عمیق توجه بیش‌تری را به سمت خود جلب کرده است؛ چرا که نتایجی را با خود به همراه داشته است که هیچگاه در گذشته ممکن نبوده‌اند.

پردازش زبان طبیعی

پردازش زبان طبیعی (Natural Language Processing) یا به اختصار، NLP، یکی از شاخه‌های AI است که به تعاملات بین رایانه و انسان، از طریق زبان طبیعی می‌پردازد. هدف غایی NLP، خواندن، رمزگشایی، فهم و درک زبان انسان با روشی ارزشمند است. بیش‌تر روش های پردازش زبان طبیعی برای استخراج و فهم معنای زبان انسانی، مبتنی بر تکنیک‌های یادگیری ماشین است.

یادگیری تقویتی

نوع یادگیری AI و انسان، بسیار به یکدیگر شبیه است؛ یکی از راه‌‌‌های آموزش به کامپیوتر به شیوه انسانی، استفاده از یادگیری تقویتی (reinforcement learning) است. در این روش، هدفی به رایانه داده می‌‌‌‌شود که به صورت دقیق تعریف نشده است! به عنوان مثال به رایانه می‌‌‌‌گوییم که «جواب را پیدا کن» یا «بهره‌‌‌‌وری را بالا ببر». این اهداف متریک معینی ندارند؛ پس از آن که رایانه به هدف دست یافت، نتیجه را در اختیار انسان قرار می‌‌‌‌دهد تا بررسی شود. هوش مصنوعی فیدبک را از انسان می‌‌‌‌گیرد و خود را اصلاح می‌‌‌‌کند تا به نتیجه مطلوب دست یابد.

یادگیری با ناظر

در یادگیری با ناظر (supervised learning)، ما یک سری سوال و جواب‌‌‌‌های آن‌‌‌‌ها را به رایانه می‌‌‌‌دهیم؛ رایانه با استفاده از یک الگوریتم یادگیری ماشین، روابط بین ورودی‌‌‌‌ها (سوال) و خروجی (جواب) را پیدا می‌‌‌‌کند. پس از آن اگر سوال جدیدی به رایانه دهیم که جواب آن را ندانیم، مدل می‌‌‌‌تواند جواب را پیش‌‌‌‌بینی کند.

یادگیری بدون ناظر

در یادگیری بدون ناظر (unsupervised learning)، ما دیگر با ورودی و خروجی سر و کار نداریم؛ بلکه مقدار زیادی داده داریم که می‌‌‌‌‌خواهیم الگوی بین این داده‌‌‌‌‌ها را به دست آوریم! 

انتقال یادگیری (transfer learning)

فرض کنید یک مدل ساخته‌‌‌‌‌‌ایم که به خوبی می‌‌‌‌‌‌تواند وجود خودرو سواری در یک تصویر را تشخیص دهد. آیا این مدل (دانش کسب‌‌‌‌‌‌شده) را می‌‌‌‌‌‌توان در تشخیص وجود تراکتور در تصویر به کار برد؟ موضوع انتقال یادگیری دقیقا چنین مبحثی است. در واقع می‌خواهیم با مدل‌هایی که train کرده‌ایم، مسائل جدیدی را حل کنیم.

سطوح هوش مصنوعی چیست؟

به طور کلی می‌توان سه سطح برای هوش مصنوعی تعریف کرد:

  • هوش مصنوعی ضعیف (ANI) تقریبا تمام سیستم‌های AI که تا به امروز توسعه داده شده‌اند، هوش مصنوعی ضعیف هستند. در این سطح از AI، ماشین‌ها تنها قادر به انجام امور مشخص هستند و هوشمندی محدودی دارند.
  • هوش مصنوعی عمومی (AGI) هوش مصنوعی عمومی نوعی از AI بسیار قدرتمند است که توانایی تصمیم‌گیری به شکل مستقل ندارد. بشر تا کنون به چنین هوشی دست نیافته است.
  • هوش مصنوعی سوپر (ASI)این نوع هوش آن قدر قوی شده است که می‌تواند بر انسان چیره شود؛ این نوع از AI تنها در حد تئوری باقی مانده است.

شاخه های AI  و کاربردهای آن ها چیست؟

اگر بخواهیم یک تقسیم‌بندی از شاخه‌های هوش مصنوعی داشته باشیم، باید به صورت زیر عنوان کنیم:

  • یادگیری ماشین
  • یادگیری عمیق
  • پردازش زبان طبیعی
  • رباتیک
  • سیستم‌های متخصص
  • منطق فازی 

انواع هوش مصنوعی

اگر بخواهیم تقسیم‌بندی خوبی از AI داشته باشیم، می‌توانیم آن را بر اساس کاربردهایش گروه‌بندی کنیم. انواع AI  بر اساس کاربرد عبارتند از:

  • ماشین‌های هوش مصنوعی واکنش‌گر (Reactive Machines AI)

این نوع از ماشین‌ها، تنها بر اساس داده‌های فعلی و شرایط کنونی عمل می‌کنند. ماشین‌های AI واکنش‌گرا، نمی‌توانند بر اساس داده‌های فعلی، شرایط آینده را پیش‌بینی کنند و تنها بر اساس مجموعه‌ای از دستورات از پیش‌ تعیین‌شده و محدود عمل می‌کنند.

مثال معروف این نوع از ماشین هوش مصنوعی، برنامه‌ی شطرنج‌باز شرکت IBM است که توانست Garry Kasparov، قهرمان جهانی شطرنج، را شکست دهد.

  • AI  با حافظه محدود (Limited Memory AI)

همان‌طور که از اسم این نوع از ماشین‌ها برمی‌آید، می‌توانند مجموعه‌ای از داده‌ها را در حافظه‌ی خود ذخیره کنند و بر اساس آن‌، تصمیم‌هایی بهینه و مناسب بگیرند. هوش مصنوعی با حافظه محدود، با استفاده از داده‌هایی که در حافظه‌ی کوتاه‌مدت خود ذخیره کرده، می‌تواند تصمیمات سنجیده‌ای بگیرد.

خودروهای خودران، نمونه‌ای از ماشین‌های هوش مصنوعی با حافظه محدود است. این خودروها، به وسیله‌ی سنسورهای مختلف،‌ عابران،‌ سایر ماشین‌ها،‌ علائم راهنمایی و رانندگی، شیب جاده و … را تشخیص می‌دهند و از هرگونه تصادف جلوگیری می‌کنند.

  • AI مبتنی بر تئوری ذهن (Theory Of Mind AI)

هوش مصنوعی مبتنی بر تئوری ذهن، گونه‌ی پیچیده‌تری از هوش مصنوعی است. این نوع هوش مصنوعی، اهمیت زیادی در روانشناسی دارد. تمرکز اصلی هوش مصنوعی مبتنی بر تئوری ذهن، حوزه‌ی هوش احساسی است. با استفاده از آن،‌ قادر هستیم، احساسات و تفکرات انسانی را راحت‌تر درک کنیم. هوش مصنوعی مبتنی بر تئوری ذهن، هنوز توسعه‌ی زیادی نیافته‌است؛ اما،‌ تحقیقات زیادی در این زمینه در حال انجام است.

  • AI خودآگاه (Self-aware AI)

نتیجه اینکه

در حال حاضر، ساخت ماشین هوش مصنوعی که بدون دخالت انسان،‌ تصمیم‌گیری کند، ممکن نیست و با شرایط فعلی فناوری، چنین چیزی ممکن نیست. اما، شاید در آینده و با استفاده از یک AI بسیار پیشرفته، چنین امری ممکن شود.

منبع : علیرضا کریمی- فنولوژی

نگاهی اجمالی بر سیستم های توصیه گر

سیستم های توصیه گیر

شرکت‌های خرده‌فروشی و فروشگاه‌های آنلاین مختلفی در دنیا، سعی دارند با استفاده از سیستم های توصیه گر و با بهره‌گیری از قدرت بی‌نظیر داده، تجربه‌ی مطلوبی برای مشتریان خلق کنند و از این راه، فروش خود را افزایش دهند. در سال‌های اخیر، استفاده از سیستم پیشنهاد دهنده بسیار رواج یافته است و وقت آن رسیده تا به بررسی عمیق‌تر این تکنیک جالب یادگیری ماشین بپردازیم.

سیستم پیشنهاد دهنده چیست؟

در سیستم های توصیه گر سعی بر این است که علایق یک کاربر خاص در وبسایت شما را شناسایی و پیش‌بینی کند و آیتم‌هایی متناسب با علایقش به وی نشان دهد. سیستم پیشنهاد دهنده از الگوریتم‌های بسیار قدرتمند یادگیری ماشین (machine learning) است که خرده‌فروشی‌های آنلاین متعددی از آن برای افزایش فروش خود استفاده می‌کنند. دیتای مورد نیاز برای آموزش (train) یک سیستم پیشنهاد دهنده از کانال‌های مختلفی جمع‌آوری می‌شوند؛ برخی از این کانال‌ها عبارتند از:

  • امتیازدهی کاربر پس از تماشای یک فیلم یا گوش دادن به یک موسیقی
  • جستجوهای انجام‌شده در موتورهای جستجو
  • تاریخچه‌ی خرید

سایت‌هایی مانند یوتیوب، نتفلیکس یا اسپاتیفای از سیستم Recommendation System استفاده می‌کنند تا روزانه به کاربران خود، لیست‌هایی که موردعلاقه‌ی آن‌هاست نشان دهند.

چرا به سیستم‌های پیشنهاد دهنده (recommender systems) نیاز داریم؟

هدف شرکت‌هایی که از سیستم توصیه‌گر استفاده می‌کنند، بهبود تجربه‌ی کاربر با نشان‌دادن پیشنهادهای کاملا خصوصی‌سازی‌شده به وی است؛ این امر در نهایت سبب افزایش فروش شرکت خواهد شد. یک سیستم پیشنهاددهنده سبب می‌شود تا کاربر خیلی سریع‌تر و بدون سرچ‌های اضافی به محصول یا محتوای مد نظر خود دست یابد و با دیدن پیشنهادهایی که مورد علاقه‌ی اوست، شگفت‌زده شود. علاوه بر این، شرکت‌ها می‌توانند با ارسال ایمیل‌هایی که حاوی آیتم‌های مورد علاقه‌ی یک کاربر خاص است، وی را به سایت بکشانند تا خریدهای جدیدی انجام دهد.

با دانستن علاقه‌ی هر یک از مشتریان، خطر از دست دادن آن مشتری یا جذب وی توسط رقبا کاهش می‌یابد. در واقع سیستم پیشنهاد دهنده، یک ارزش افزوده‌ای است که به مشتری ارائه می‌کنیم تا وی را وفادار نگه داریم.

سیستم Recommendation System (سیستم توصیه‌گر) چگونه کار می‌کند؟

سیستم های  توصیه گر  با دو دسته‌ی کلی اطلاعات (information) کار می‌کند:

  • اطلاعات مشخصه (Characteristic information): اطلاعاتی در مورد محصولات (دسته‌بندی‌ها، کلیدواژه‌ها و …) و کاربران (علایق و ترجیحات، پروفایل و …)
  • تعاملات کاربر-آیتم (User-item interactions): اطلاعاتی مانند امتیازدهی کاربر به آیتم، تعداد خرید یک محصول، تعداد لایک‌ها و …

بر اساس این دو دسته اطلاعات، از سه الگوریتم مختلف در سیستم‌های پیشنهاددهنده استفاده می‌شود:

  • مدل مبتنی بر محتوا (content based): که از اطلاعات مشخصه استفاده می‌کند.
  • مدل مبتنی بر فیلترینگ مشارکتی (collaborative filtering based): که از تعاملات کاربر-آیتم استفاده می‌کند.
  • مدل ترکیبی (hybrid): که از هر دو دسته اطلاعات استفاده می‌کند تا به نتایج بهتری دست یابد.

مدل مبتنی بر محتوا (content based)

سیستم توصیه گر مبتنی بر محتوا، با استفاده از آیتم‌های یک کاربر یا ویژگی‌های پروفایل اختصاصی وی، پیشنهادهایی به او ارائه می‌کند. در واقع این نوع سیستم فرض می‌کند که اگر کاربری در گذشته به یک آیتم خاص علاقه داشته، احتمالا الان هم به آن آیتم علاقه‌مند است. آیتم‌های مشابه در گروه‌های یکسانی قرار داده می‌شوند؛ همچنین پروفایل‌های کاربران نیز با توجه به تاریخچه‌ی خرید آن‌ها یا با پرسیدن علایق کاربر به صورت صریح و در غالب سوالاتی از وی تکمیل می‌شود؛ البته روش‌هایی نیز وجود دارند که کاملا محتوامحور محسوب نمی‌شوند و از اطلاعات شخصی کاربر و اطلاعات وی در شبکه‌های اجتماعی استفاده می‌کنند. به طور خلاصه، در مدل محتوامحور، آیتم‌ها گروه‌بندی می‌شوند؛ سپس اگر کاربر آیتمی از یک گروه را بپسندد، سایر آیتم‌های آن گروه به وی پیشنهاد می‌شود.

سیستم‌های پیشنهاددهنده‌ی محتوا محور دو اشکال اساسی دارند:

۱-یک مشتری خاص ممکن است به آیتمی علاقه‌مند باشد که در گروه‌بندی آیتم‌های مورد علاقه‌ی قبلی او قرار نمی‌گیرد؛ اگر سیستم پیشنهاددهنده‌ی ما بر اساس مدل محتوامحور آموزش دیده باشد، آن آیتم خاص به کاربر نشان داده نمی‌شود و این یک ضعف بزرگ به حساب می‌آید.

۲-مشکل دوم مدل محتوامحور آن است که برای کاربران جدیدی که هیچ سابقه‌ی خرید و پروفایلی در وبسایت ما ندارند، کارایی مناسبی از خود نشان نمی‌دهد. البته با پرسیدن سوالاتی خاص و فهمیدن علایق کاربر می‌توان این مشکل را تا حدودی حل کرد.

مدل مبتنی بر فیلترینگ مشارکتی (collaborative filtering based)

مدل فیلترینگ مشارکتی یکی از بهترین مدل‌های مورد استفاده در سیستم‌های پیشنهاددهنده است که کاربرد فراوانی دارد و معمولا نتایج بهتری نسبت به مدل محتوامحور از خود نشان می‌دهد. شرکت‌هایی مانند یوتیوب، نتفلیکس و اسپاتیفای، از این مدل استفاده می‌کنند.

سیستم‌های مبتنی بر فیلترینگ مشارکتی از تاریخچه تعاملات کاربر استفاده می‌کنند و آیتم‌هایی که احتمالا مورد علاقه‌ی اوست را به وی نمایش می‌دهند. تعاملات کاربر-آیتم را می‌توان با استفاده از یک ماتریس نمایش داد؛ در این ماتریس، درایه‌ی (i,j) نشان‌دهنده‌ی تعامل بین کاربر i و آیتم j است. فیلترینگ مشارکتی در واقع ترکیبی از روش‌های دسته‌بندی (classification) و رگرسیون است. در این دو روش، ما با در اختیار داشتن متغیرهایی، سایر متغیرهای وابسته را به دست می‌آوریم؛ اما در ماتریس ذکرشده در روش فیلترینگ مشارکتی، تلاش ما بر این است که مقدار هر یک از درایه‌ها را پیش‌بینی کنیم.

به طور خلاصه، بر اساس مدل فیلترینگ مشارکتی اگر کاربری آیتم الف را دوست داشته باشد و کاربری دیگر نیز آیتم‌های الف و ب را دوست داشته باشد، احتمالا کاربر اول نیز آیتم ب را دوست دارد. برای ساخت مدل فیلترینگ مشارکتی، از دو متد عمده استفاده می‌شود:

  • متد مبتنی بر حافظه (memory-based)
  • متد مبتنی بر مدل (model-based)

متد مبتنی بر حافظه

در این متد دو رویکرد اصلی وجود دارد:

۱-در این رویکرد، ما کاربران را گروه‌بندی می‌کنیم و از تعامل آیتم-کاربر یکی از کاربران، سایر تعاملات را پیش‌بینی می‌کنیم.

۲-در این رویکرد، ما آیتم‌ها را گروه‌بندی می‌کنیم و بر اساس امتیازاتی که کاربر به آیتم‌های موجود در یک گروه می‌دهد، علایق او را پیش‌بینی می‌کنیم.

متد مبتنی بر مدل

این متد، مبتنی بر تکنیک‌های یادگیری ماشین و داده‌کاوی (data mining) است. هدف ما آموزش (train) مدل‌هایی است که پیش‌بینی‌هایی انجام دهند. به عنوان مثال می‌توان از داده‌های موجود درباره تعاملات کاربر-آیتم استفاده کرد و ۵ آیتم احتمالی مورد علاقه‌ی کاربر را پیش‌بینی نمود.

مشکلات مدل مبتنی بر فیلترینگ مشارکتی

این مدل دو اشکال اساسی دارد:

۱-شروع سرد: برای آن‌که مدل به خوبی کار کند نیاز به میزانی داده از تعاملات میان کاربر-آیتم داریم؛ بنابراین، قبل از آن‌که یک حجم خوب از تعاملات کاربر با آیتم‌ها به دست بیاوریم، نمی‌توانیم پیش‌بینی‌های خوبی انجام دهیم.

۲-اضافه کردن آیتم یا کاربر جدید به این مدل مشکلات فراوانی برای ما ایجاد می‌کند.

تکنیک‌های مورد استفاده در Recommendation System

دو تکنیک اصلی برای ساخت سیستم پیشنهاد دهنده مبتنی بر مدل فیلترینگ مشارکتی وجود دارد:

  • شبکه‌های عصبی کاملا به هم پیوسته (fully-connected neural networks)
  • Item2vec

شبکه‌های عصبی کاملا به هم پیوسته (fully-connected neural networks)

یک روش کلاسیک، فاکتورگیری ماتریسی است. فرض کنید ماتریس R، همان ماتریس تعاملات کاربر-آیتم باشد. اگر به روشی بتوانیم ماتریس‌‌های U و I را به دست آوریم به گونه‌‌ای که R=U*I شود، می‌‌توانیم ادعا کنیم، ماتریس تعاملات کاربر-آیتم را ساخته‌‌ایم؛ از روی این ماتریس، آیتم‌‌های مورد علاقه‌‌ی هر کاربر پیش‌‌بینی می‌‌شود.

یک روش هوشمندانه برای یافتن ماتریس‌‌های U و I، استفاده از شبکه‌‌ی عصبی است. با استفاده از یک سری حدس اولیه و استفاده از شبکه عصبی می‌‌توان ماتریس R را به دست آورد.

چه زمانی از سیستم های توصیه گر (recommender systems) استفاده کنیم؟

تا این جای کار، اطلاعات خوبی از سیستم‌‌های توصیه گر و نحوه‌‌ی عملکرد آن‌‌ها به دست آوردیم. حال بیایید بررسی کنیم و ببینیم چه زمانی باید از یک سیستم توصیه‌‌گر استفاده کرد. اگر صاحب یک کسب‌‌وکار موفق هستید، احتمالا بدون سیستم پیشنهاد دهنده هم به کار خود با موفقیت ادامه می‌‌دهید؛ اما اگر می‌‌خواهید از قدرت داده‌‌ها استفاده کنید و تجربه‌‌ی خارق‌‌العاده‌‌‌‌ای برای کاربران خلق کنید و از این راه درآمد خود را افزایش دهید، باید به شکل جدی به سیستم پیشنهاد دهنده فکر کنید.

برخی از تجربه‌‌های موفق استفاده از سیستم‌‌های توصیه گر:

  • ۳۵ درصد خریدهایی که در آمازون صورت می‌‌گیرند، خروجی سیستم پیشنهاد دهنده هستند.
  • علی‌‌بابا با استفاده از لندینگ‌‌های شخصی‌‌سازی‌‌شده توانسته است تا ۲۰ درصد نرخ تبدیل خود را افزایش دهد.
  • ۷۰ درصد زمان افراد در یوتیوب صرف تماشای خروجی سیستم‌‌های پیشنهاد دهنده می‌‌شود.
  • ۷۵ درصد زمان افراد در نتفلیکس صرف تماشای خروجی سیستم‌‌های پیشنهاد دهنده می‌‌شود.
  • استفاده از سیستم Recommendation System، سالیانه ۱ میلیارد دلار هزینه‌‌های نتفلیکس را کاهش داده است.

پیش‌نیازهای ساخت سیستم های توصیه گیر چیست؟

داده تنها منبع ارزشمند و مورد نیاز ماست. شما به عنوان صاحب یک کسب‌‌وکار باید داده‌‌های تعاملات کاربر-آیتم را داشته باشید. بسته به نوع داده‌هایی که در اختیار دارید می‌‌توانید از یکی از مدل‌‌های محتوا-محور یا فیلترینگ مشارکتی استفاده کنید. هر چقدر دیتای بیش‌‌تری داشته باشید، مدل‌‌های شما بهتر کار خواهند کرد. علاوه بر این، باید به فکر استخدام افرادی باشید که می‌‌دانند چگونه داده‌‌ها را جمع‌‌آوری و تمیز کنند.

درباره‌‌ی تعاملات کاربر-آیتم، این موارد را مد نظر داشته باشید:

  • تعاملات کاربر-آیتم را باید با توجه به نوع کسب‌‌وکار خود تعریف کنید. برای مثال اگر صاحب یک E-Commerce هستید، کنش‌‌هایی مانند کلیک بر روی یک آیتم، سرچ، بازدید یک صفحه، آیتم‌‌های مورد علاقه، خریدها و …، تعامل به حساب می‌‌آیند.
  • هر چقدر تعاملات به ازای هر کاربر یا هر آیتم، بیش‌‌تر باشد، نتیجه‌‌ی نهایی بهتر خواهد بود.

ساخت یک سیستم پیشنهاد دهنده از صفر کار راحتی نیست و مانند ساخت یک محصول جدید است. شروع کار با یک سیستم محتوا-محور و حتی پرسیدن سوالات مستقیم از کاربر درباره‌‌ی علایقش روش مناسبی است؛ رفته رفته و با زیاد شدن تعاملات کاربر-آیتم، امکان استفاده از سیستم‌های مبتنی بر فیلترینگ مشارکتی نیز فراهم می‌‌شود.

چگونه یک سیستم Recommendation System را ارزیابی کنیم؟

بسته به هدف شما، روش‌‌های مختلفی برای ارزیابی سیستم پیشنهاد دهنده وجود دارند. به عنوان مثال اگر تنها ۵ آیتم مورد علاقه‌‌ی کاربر برای شما مهم است، احتمالا آیتم‌‌های دیگر و کیفیت پیش‌‌بینی آن‌‌ها بررسی نمی‌‌کنید؛ یا اگر ترتیب این ۵ آیتم مهم باشد، آن را بررسی و ارزیابی می‌‌کنید. دو روش کلی برای ارزیابی سیستم‌‌های توصیه گر وجود دارد: آنلاین و آفلاین.

روش‌‌های آنلاین

نام دیگر این روش‌‌ها A/B testing است.  در روش‌‌های آنلاین، با نمایش آیتم‌‌های پیشنهادی به کاربر و اندازه‌‌گیری مواردی مانند نرخ تبدیل و چگونگی تعامل کاربر با آن آیتم، سیستم را ارزیابی می‌‌کنید. این روش‌‌ها علاوه بر دشواری‌‌های پیاده‌‌سازی، به علت اثرگذاری مستقیم بر مشتریان، ممکن است باعث کاهش درآمد شما شوند. علاوه بر این، به علت تعامل با مشتری واقعی و ارزیابی از طریق رفتار او، روش‌‌های آنلاین معمولا زمان‌‌بر هستند.

روش‌‌های آفلاین

در روش‌‌های آفلاین، بر خلاف متدهای آنلاین، کاربر مستقیما در فرایند ارزیابی درگیر نمی‌‌شود. در این روش، با استفاده از یک دیتاست نمونه، می‌‌توان مدل را ارزیابی نمود.

جمع‌بندی

سیستم‌‌های پیشنهاد دهنده موجودات بسیار جذاب و هیجان‌‌آوری هستند! از دید مشتریان، این سیستم‌‌ها سبب بهبود تجربه کاربری و افزایش درگیری مخاطب می‌‌شود. از دید صاحبان کسب‌‌وکار نیز استفاده از سیستم‌های توصیه‌‌گر باعث افزایش فروش می‌‌شود.

مهم‌‌ترین چالش در به کارگیری یک سیستم پیشنهاد دهنده، چالش داده است. اگر هنوز داده‌‌ها را به صورت مرتب جمع‌‌آوری نمی‌‌کنید، بدون از دست دادن هیچ فرصتی، این کار را شروع نمایید.

منبع : علیرضا کریمی – فنولوژی

درباره سخت افزارهای شتاب دهنده هوش مصنوعی

شتاب دهنده هوش مصنوعی

شتاب دهنده هوش مصنوعی (AI Accelerator)، نوعی میکروچیپ با طراحی سخت‌افزاری خاص است که پردازش الگوریتم‌های هوش مصنوعی را سرعت می‌بخشد. این میکروچیپ‌ها طوری طراحی شده‌اند که به عنوان شتاب‌دهنده‌ی سخت‌افزاری برای کاربردهای هوش مصنوعی، به خصوص شبکه‌های عصبی، بینایی ماشین (Machine Vision) و یادگیری ماشین عمل کنند. شتاب‌دهنده‌های هوش مصنوعی در زمینه‌های وسیعی از جمله رباتیک و اینترنت اشیا کاربرد دارند.

پردازش سریع‌تر با استفاده از شتاب دهنده هوش مصنوعی

همانند سایر شتاب‌دهنده‌های سخت‌افزاری، مثل واحد‌های پردازش گرافیکی (Graphics Processing Units)، واحدهای توان کمکی (Auxiliary Power Units) و واحدهای پردازش فیزیکی (Physics Processing Units)، شتاب‌دهنده‌های هوش مصنوعی طراحی شده‌اند تا وظایف خاص خود را به گونه‌ای انجام دهند که برای CPUهای سنتی رایج در اکثر کامپیوترها غیرممکن است. یک شتاب‌دهنده‌ی سخت‌افزاری عملکرد بیشتر، کارایی بیشتر و راندمان انرژی بیشتری را در انجام وظیفه‌ی معین خود ارائه می‌دهد.

در بعضی موارد، لازم است عملیات محاسباتی به صورت موازی و همزمان انجام شود. یک پردازنده‌ی گرافیکی با استفاده از تعداد زیادی هسته‌های ساده‌ای که به طور معمول برای ارسال پیکسل به صفحه نمایش استفاده می‌شوند، چنین وظایفی را تسریع می‌کند. با استفاده از یک پردازنده‌ی گرافیکی همه‌منظوره (General Purpose GPU)، کارت گرافیک می‌تواند در اجرای پردازش‌های عظیم موازی استفاده شود و تا ۱۰ برابر عملکرد بهتری نسبت به CPU داشته باشد. این نوع عملیات محاسباتی موازی و همزمان، در هوش مصنوعی نیز بسیار دیده می‌شود.

نگاهی عمیق‌تر به شتاب‌دهنده‌های هوش مصنوعی

تمرکز طراحی شتاب‌دهنده‌های هوش مصنوعی عموماً بر ساخت اجزای چند هسته‌ای است. این هسته‌ها برای اجرای توابع ساده‌ی ریاضیاتی که در هوش مصنوعی کاربرد دارند طراحی شده‌اند. اما برای انجام یک عملیات هوش مصنوعی لازم است تعداد بسیاری از این توابع به صورت همزمان اجرا شوند؛ به همین دلیل روش‌های سنتی محاسباتی مناسب نخواهندبود. این موضوع در Google هنگام کار بر پروژه‌ی DeepMind’s AlphaGo نیز مطرح بود. AlphaGo برنامه‌ای کامپیوتری است که با استفاده از هوش مصنوعی بازی رومیزی Go را انجام می‌دهد. تعداد جایگشت‌های ممکن برای مهره‌های بازی آن‌قدر زیاد بود که امکان استفاده از روش جستجوی جامع (Brute Force Approach) نبود. در این روش که برای حل مسئله تمام جایگشت‌های ممکن امتحان می‌شود، نیاز به قدرت پردازشی بالایی است؛ اما با وجود قدرت سخت‌افزاری بالا، الگوریتم‌ها باید به شکل هوشمندانه‌ای تغییر می‌یافتند. شتاب‌دهنده‌های هوش مصنوعی، می‌توانند این نوع پردازش‌ها را تسریع بخشند.

با استفاده از مدارهای مجتمع با کاربرد خاص (ASIC)، مثل شتاب‌دهنده‌های هوش مصنوعی، می‌توان از کارایی بسیار بالاتری بهره‌مند شد. این کارایی بیشتر، در انجام فعالیت‌های هوش مصنوعی که در لحظه انجام می‌شوند، مثل خودروهای خودران، نمود بیشتری پیدا خواهدکرد. سخت افزار‌های فعلی شتاب‌دهنده‌های هوش مصنوعی شامل Google Tensor، Adapteva Epiphany، Intel Nervana، Mobil EyeQ و Movidus Myriad 2S می‌شوند.

منبع: محمدرضا فرودست- فنولوژی

GPT-3 روزانه ۴٫۵ میلیارد کلمه تولید می‌کند

ربات GPT-3 روزانه 4/5 میلیارد کلمه تولید می کند.

سیستم تولید متن GPT-3 شرکت OpenAI امروزه در بیش از ۳۰۰ اپلیکیشن استفاده می‌شود و بالغ ‌بر ۴٫۵ میلیارد کلمه به‌صورت روزانه تولید می‌کند.

در حال حاضر یکی از بزرگ‌ترین ترندهای فناوری یادگیری ماشین، تولید متن است. سیستم‌های هوش مصنوعی با بررسی میلیاردها کلمه‌ای که در اینترنت وجود دارد، آموزش می‌بینند و در پاسخ به موقعیت‌های متنوع، می‌توانند متن تولید کنند. همه‌چیز ساده به‌ نظر می‌رسد، اما سیستم‌های هوش مصنوعی را می‌توان در کارهای متنوعی مورد استفاده قرار داد. مثلاً از نوشتن داستان گرفته تا نوشتن کد و حتی چت کردن با شخصیت‌های تاریخی.

سرشناس‌ترین سیستم تولید متن متکی‌ بر هوش مصنوعی با نام GPT-3 شناخته می‌شود و متعلق ‌به شرکت OpenAI است. شرکت OpenAI چندی پیش اعلام کرد سیستم GPT-3 اکنون در بیش از ۳۰۰ اپلیکیشن مختلف و توسط «ده‌ها هزار» توسعه‌دهنده مورد استفاده قرار می‌گیرد و روزانه ۴٫۵ میلیارد کلمه تولید می‌کند. تولید این تعداد کلمه در روز را می‌توان به‌عنوان دستاورد مهمی برای OpenAI به‌حساب آورد. این موضوع به‌وضوح نشان می‌دهد هوش مصنوعی و سیستم‌های تولید متن تا چه حد می‌توانند پیشرفت کنند.

شرکت OpenAI

OpenAIشرکت فعالیت خود را به‌عنوان شرکت غیر انتفاعی آغاز کرد. اما در چند سال اخیر تلاش کرده است از طریق GPT-3 به‌عنوان نخستین محصول قابل‌ فروش، درآمد کسب کند. شرکت OpenAI قراردادی انحصاری با مایکروسافت دارد تا این شرکت ردموندی به کد پایه‌ای GPT-3 دسترسی منحصربه‌فردی داشته باشد. البته تمامی شرکت‌ها می‌توانند درخواست دسترسی به API عمومی GPT-3 ثبت کنند و سرویس‌هایی بر پایه‌ی GPT-3 بسازند.

 OpenAI مشتاق انجام تبلیغ است و صدها شرکت ‌اکنون مشغول انجام این کار هستند. یک استارتاپ به نام Viable با استفاده از سیستم GPT-3 بازخوردهای مشتریان را تجزیه‌و‌تحلیل می‌کند. آن شرکت تم‌ها و احساسات دخیل‌ در نظرسنجی‌ها را شناسایی می‌کند، جزئیات چت‌های زنده را ثبت می‌کند و به مدل خود می افزاید. همچنین  Fable Studio از GPT-3 برای ایجاد دیالوگ به ‌منظور خلق تجارب جدید واقعیت مجازی بهره می‌گیرد. شرکت Algolia از سرویس پرکاربرد OpenAI برای بهبود محصولات جست‌و‌جوی وب و فروش آن‌ها به مشتریان استفاده می‌کند.

تمامی این‌ موارد اخبار خوبی برای OpenAI و البته مایکروسافت محسوب می‌شوند. (سرویس ابری مایکروسافت آژور، سرورهای فناوری OpenAI را تأمین می‌کند). اما همه‌ی اعضای صنعت دید مثبتی ‌به این ماجرا ندارند. پیش‌تر بسیاری از تحلیلگران گفته‌اند بنیان‌گذاری شرکت بر اساس فناوری که به شما تعلق ندارد کار اشتباهی است. استفاده از GPT-3 برای بنیان‌گذاری استارتاپ به ‌شکل محسوسی ساده است و همین فرایند را رقبا نیز می‌توانند به‌سادگی انجام بدهند.

نگرانی های GPT-3

یکی از نگرانی‌های کاربران در مورد سیستم‌های تولید متن، کیفیت خروجی است. همچون بسیاری از الگوریتم‌ها، سیستم‌های تولیدکننده‌ی متن ظرفیت کافی دارند تا از آن‌ها برای غالب کردن جهت‌گیری‌های آسیب‌رسان استفاده شود. به‌علاوه سیستم‌های این‌چنینی در اکثر مواقع به‌طور حیرت‌انگیزی متون نامفهوم تولید می‌کنند. در آزمایش یک چت‌بات پزشکی مبتنی ‌بر GPT-3، چت‌بات به فردی که تمایل به خودکشی داشت توصیه کرد که خودش را بکشد. این مشکلات غیر قابل ‌بخشش هستند؛ اما شاید بتوان به ‌مرور زمان آن‌ها را رفع کرد

 

منبع : مبین احمدی- زومیت

نگاه اجمالی به کلان داده ها

نگاه اجمالی به کلان داده ها

برای این که بفهمیم کلان داده چیست، خوب است اول نگاهی به مفهوم دیتا یا داده بیندازیم. داده یا Data، مقادیر، کاراکترها یا سمبل‌هایی است که پردازش‌های کامپیوتری بر روی آن‌ها انجام می‌شود. داده‌های می‌توانند به شکل سیگنال‌های الکتریکی ذخیره شوند یا انتقال یابند. همچنین دیتا را می‌توانیم بر روی دیسک‌های مغناطیسی، نوری یا مکانیکی ذخیره کنیم. کلان داده یا Big Data نیز همان دیتاست فقط در ابعاد و مقادیر خیلی خیلی بزرگ! کلان داده در حقیقت دیتایی بسیار حجیم است که در طول زمان به صورت نمایی بزرگ می‌شود. کلان داده آنقدر بزرگ است که هیچ یک از ابزارهای سنتی مدیریت داده، قادر به نگهداری یا پردازش بهینه آن نیستند.

کاربردهای کلان داده

برخی از کاربردهای Big Data عبارتند از:

  • بورس نیویورک، روزانه در حدود یک ترابایت داده از معاملات مختلف تولید می‌کند.
  • روزانه در فیسبوک، حدود ۵۰۰ ترابایت داده‌های جدید از انواع مختلف بارگذاری می‌شود.
  • یک موتور جت هواپیما، در ۳۰ دقیقه می‌تواند دیتایی با حجم ۱۰ ترابایت تولید کند. 

انواع Big Data چیست؟

 Big Data در سه فرم کلی زیر یافت می‌شود:

داده ساختارمند یا structured data

هر داده‌ای که بتوان آن را با فرم مشخصی ذخیره‌سازی، بازیابی و پردازش کرد، داده ساختارمند نام دارد. در طول زمان، پیشرفت‌های مختلفی در زمینه کامپیوتر صورت گرفته و روش‌های متنوعی برای کار با این نوع از داده‌ها، ارائه شده‌اند. امروزه با چالش‌های جدیدی رو به رو هستیم. داد‌های ساختارمند امروزی، حجمی معادل چندین زتابایت (کیلوبایت، مگابایت، گیگابایت، ترابایت، پتابایت، اگزابایت، زتابایت!) دارند و این حجم عظیم، کار با آن‌ها را سخت می‌کند. اگر دقیق‌تر به حجم این داده‌ها فکر کنید، متوجه می‌شوید که چرا نام Big Data را یدک می‌کشند! پردازش و ذخیره‌سازی این حجم از داده‌ها، با مشکلات بسیار متنوعی روبروست. داده‌هایی که در یک پایگاه داده رابطه‌ای (relational database) ذخیره می‌شود، معمولا از نوع داده‌های ساختارمند هستند. جدول زیر، مثالی از داده‌های ساختارمند است:

داده بی ساختار یا unstructured data

هر داده‌‌ای با فرم و ساختار نامعین و نامشخص، داده بی‌‌ساختار نام دارد. داده‌‌های بی‌‌ساختار، علاوه بر پیچیدگی‌‌های مربوط به حجم داده‌‌ها، پیچیدگی‌‌های مختلفی در زمینه پردازش و استخراج اطلاعات از آن دارد. منابع داده‌‌‌ای ناهمگون که ترکیبی از انواع مختلف داده مانند دیتای تصویری، متنی، ویدیویی و … هستند، مثالی از داده‌‌‌های بی‌‌‌ساختار به حساب می‌‌‌آیند. سازمان‌‌‌ها معمولا حجم عظیمی از داده‌‌‌‌‌های مختلف دارند؛ اما بی‌‌‌ساختاری این داده‌‌‌ها باعث شده که نتوانند استفاده درستی از آن‌‌‌های کنند. صفحه سرچ گوگل، مثالی از داده بی‌‌‌ساختار است.

داده شبه ساختارمند یا semi-structured data

داده‌‌‌های شبه ساختارمند در واقع ترکیبی از هر دو نوع داده‌‌‌ی ساختارمند و بی‌‌‌ساختار هستند. در حقیقت، این داده‌‌‌ها فرم خاصی دارند ولی به شکل جدول (مانند داده‌‌‌های ساختارمند) در نمی‌‌‌آیند. مثالی از داده شبه ساختارمند، یک فایل XML است.

ویژگی های Big Data چیست؟

حجم                                         

واژه کلان داده بیانگر داده‌‌‌‌‌‌‌‌‌هایی است که حجم خیلی زیادی دارند. حجم داده آنقدر اهمیت دارد که یکی از ملاک‌های ارزش‌گذاری داده‌هاست. این که یک مجموعه داده را کلان داده بنامیم یا نه، کاملا بستگی به حجم داده‌ها دارد. علاوه بر این، هنگام کار با داده‌ها و پردازش آن، نیاز است تا به حجم آن توجه ویژه‌ای کنیم. 

تنوع

به خاطر پدید آمدن منابع ناهمگون تولید دیتا، تنوع زیادی در کلان داده‌ها به وجود آمده است. در گذشته، صفحات گسترده (مثل مایکروسافت اکسل و گوگل شیت) و دیتابیس‌ها، تقریبا تنها منبع دیتا به حساب می‌آمدند. امروزه، داده‌های بسیار متنوعی به فرم ایمیل، عکس، ویدیو، PDF، صوت و …  نیز در کاربردهای متنوع مورد توجه قرار گرفته‌اند. تنوع زیاد داده‌های بی‌ساختار پیچیدگی‌های فراوانی برای ذخیره‌سازی و آنالیز این داده‌های ایجاد می‌کنند.

سرعت

منظور از سرعت، سرعت تولید داده‌های جدید است. در واقع ما باید بتوانیم پتانسیل تولید داده‌ها را اندازه‌گیری کنیم. حجم عظیمی از داده‌ها هر لحظه از طریق سنسورها، تلفن‌های همراه هوشمند، شبکه‌های اجتماعی، شبکه‌های رایانه‌ای و داده‌های بیزینسی وارد دیتابیس‌ها می‌شوند. این جریان داده به شکل دائمی و بسیار حجیم است.

فواید پردازش کلان داده چیست؟

توانایی پردازش Big Data فواید فراوانی دارد؛ برخی از این فایده‌ها عبارتند از:

  • کسب‌وکارها می‌توانند از منابع هوشی قدرتمند در تصمیم‌گیری‌هایشان بهره‌مند شوند
  • پشتیبانی از مشتریان با خودکارسازی فرایندها بسیار راحت‌تر می‌شود
  • می‌توان با استفاده از کلان داده یا همان کلان داده، ریسک‌های احتمالی استارت یک کسب‌وکار را پیش‌بینی کرد
  • بهینه‌سازی بیش‌تر عملیات‌های مختلف

جمع‌‌بندی

  • کلان داده، مجموعه‌‌ای از داده‌‌هاست که حجم بسیار زیادی دارند. Big Data علاوه بر حجم زیاد، سرعت رشد حجم نمایی نیز دارد.
  • مثال‌‌هایی از کلان داده عبارتند از: داده‌‌های بورس، شبکه‌‌های اجتماعی، موتور جت و ….
  • Big Data می‌‌تواند ساختارمند، بی ساختار و شبه ساختارمند باشد.
  • حجم، تنوع و سرعت از ویژگی‌‌های کلان داده است.
  • برخی از کاربردهای Big Data عبارتند از: بهبود عملیات‌‌ها، تصمیم‌‌گیری هوشمندانه‌‌تر، بهبود کیفیت سرویس‌‌دهی به مشتریان و ….

منبع : علی رضا کریمی – فنولوژی

تفاوت بینایی ماشین و پردازش تصویر

بینایی ماشین و پردازش تصویر

بسیاری از افراد، با این که با این دو مفهوم آشنا هستند، از تفاوت بینایی ماشین و پردازش تصویر مطلع نیستند. آیا این دو اساسا یک چیز هستند؟ آیا مستقل از هم کار می‌کنند و برای اهداف متفاوتی به‌کار می‌روند؟ یا شاید هر دو اعضای فرایندی یکسان هستند؟ ممکن است برای افرادی که در این حوزه کار نکرده‌اند، یافتن تفاوت بینایی ماشین و پردازش تصویر دشوار باشد. علاوه بر این، ظهور یادگیری عمیق و اثرات آن در کارهای پردازش تصویر، آن را در کجای کار قرار می‌دهد؟

تعاریفی برای درک بهتر پاسخ این سوال که تفاوت بینایی ماشین و پردازش تصویر چیست، در زیر آمده است؛ اما پیش از آن، شاید بهتر باشد بدانیم چرا این مفاهیم برای برخی افراد سردرگم‌کننده است. گاهی به طور نادرست فرض می‌شود که بینایی ماشین زیرمجموعه‌ای از پردازش تصویر است. یعنی معتقدند در آن کامپیوتر قادر است تصویری که به آن دسترسی دارد را تفسیر و درک کند. و از آن استفاده مناسب نماید. اما در واقع، پردازش تصویر می‌تواند به عنوان قسمتی از فرایند بینایی ماشین و یا مجزا از آن، در حوزه‌ای متفاوت، استفاده شود.

پردازش تصویر چیست؟

پردازش تصویر اصطلاحی جامع است که به توابع گوناگونی اشاره دارد که می‌توانند روی یک تصویر ثابت اعمال شوند. با این‌که ورودی آن تنها یک فریم (تصویر) است، خروجی با توجه به تابع یا توابع موردنظر انواع متنوعی دارد.

بیش‌تر توابع پردازش تصویر، تصویر ثانویه‌ی اصلاح شده‌ای را تحویل می‌دهند. برای مثال هر فیلتری که یک تصویر را تغییر دهد، یک پردازنده تصویر است. چه یک عکس فوری سیاه و سفید را رنگ‌آمیزی کند، پلاک خودرویی را جهت حفظ حریم خصوصی محو کند یا به سر شخصی گوش‌های خرگوشی اضافه کند. تمام این‌ها مثال‌هایی از تبدیل یک عکس به عکسی دیگر توسط پردازش تصویر هستند.

یکی از ابزارهای رایج در پردازش تصویر، نرم‌افزار فوتوشاپ از کمپانی ادوبی (Adobe) می‌باشد. استفاده از این محصول برای تغییر یک عکس آن‌چنان رایج است. وقتی تصویری را با آن ویرایش می‌کنیم از نتیجه نهایی تحت عنوان «فتوشاپ شده» یاد می‌شود.

در مقابل، پردازش تصویر به روند تحلیل یک عکس، مثلا برای ساخت جمله‌ای که آن را توصیف کند، اشاره ندارد. این کار در حوزه یادگیری ماشین، و در حقیقت، بخشی از بینایی ماشین است.

حال بیایید ببینم چه ارتباطی با بینایی ماشین دارد و تفاوت بینایی ماشین و پردازش تصویر را بهتر درک کنیم.

پردازش تصویر چیست؟

بینایی ماشین، در یک جمله بدین صورت تعریف می شود. قابلیت و رویه‌ی یک کامپیوتر برای درک اطرافش از طریق استفاده از یک یا چند چشم دیجیتال است. بدیهی است که این کار طی یک عمل مستقل رخ نمی‌دهد. بلکه سلسله‌ای از اقدامات است که ابتدا با دریافت تصویر آغاز گشته و سپس ادراک آن، توسط پردازش تصویر و آنالیز کردن، صورت می‌پذیرد.

بینایی انسان فرایند پیچیده‌ای است، و شبیه‌سازی آن همواره چالشی سخت برای کامپیوترها بوده است. با استفاده از روش‌های سنتی یادگیری ماشین، و با ترقی‌های حاصل شده‌ی اخیر در زمینه‌ی یادگیری عمیق، پیشرفت قابل‌توجهی در حوزه‌ی کامپیوترهایی رخ داده است. که می‌توانند نسبت به آنچه «می‌بینند» عکس العمل نشان داده و آن‌ها را تفسیر کنند.

در بررسی تفاوت بینایی ماشین و پردازش تصویر، یک نقطه‌ی تمایز قابل توجه این است. که برای حاصل شدن یک بینش صحیح و منطقی ماشین، لازم است چند تصویر حضور داشته باشند. درحالی که پردازش تصویر ذاتا تنها با یک تصویر دیجیتال کار می‌کند، بینایی ماشین روی مجموعه‌ای از تصاویر که با یکدیگر ارتباط زمانی خاصی دارند اعمال می‌شود.

دنباله‌ی تصاویر

ارتباط زمانی بین تصاویر اهمیت زیادی دارد. چرا که زمینه‌ای را فراهم می‌آورد که اغلب برای حاصل شدن نتیجه‌ای مناسب و دقیق ضروری است. برای مثال، عکس دیجیتالی را که حاوی یک خودرو است در نظر بگیرید. تحلیل و بررسی یک عکس به تنهایی ممکن است اطلاعات قابل‌توجه و مهمی را در مورد خودرو در بر داشته باشد. مثلا مدل، رنگ و شماره پلاک آن، حضور سوار یا حتی نشانه‌هایی از نور چراغ که نشان‌دهنده روشن بودن آن هستند. اما تعیین این که آیا خودرو در حال حرکت است یا نه، در چنین عکس‌هایی بسیار دشوار است.

چند مثال 

بدون شک مثال‌هایی وجود دارند که در آن‌ها می‌توان حرکت را تشخیص داد. این مثال‌ها ممکن است شامل عکس‌هایی شوند که در آن‌ها motion-blur یا تاری حرکت اعمال شده است. یا عکس‌هایی که درست در لحظه‌ی گذر خودرو از یک چاله‌ی آب و در نتیجه‌ی آن، پاشیده شدن آب به بیرون دیده می‌شود. بنابراین واضح است که عکس‌های تک‌فریمی اطلاعات کافی برای پی‌بردن به حرکت اجسام در اختیار ما نمی‌گذارند؛ چه رسد به آن که بخواهیم سرعت حرکت را از روی آن‌ها تشخیص دهیم. بدون این جزئیات، عمق درک ما به طرز چشمگیری کاهش می‌یابد.

حال به جای یک عکس تنها، مجموعه‌ از سه عکس را در نظر بگیرید که شامل خوردو یکسانی هستند. همه‌ی آن‌ها از زاویه‌ی یکسانی گرفته شده و متناظر با ترتیب عکس‌برداری برچسب‌های زمانی خورده‌اند. اگر تاخیری بین گرفته‌شدن عکس‌ها وجود داشته باشد، می‌توان به راحتی آن را از روی تفاضل برچسب‌های زمانی عکس‌ها محاسبه کرد. در این حالت، تعیین حرکت در یک بازه‌ی زمانی مشخص بسیار راحت‌تر است.

از منظر ما، ممکن است که خودرو در حال حرکت به چپ یا راست باشد. و با نگاه کردن به ترتیب گرفته شدن عکس‌ها این موضوع روشن خواهد شد. به‌طور مشابه، اگر خودرو در حال دور یا نزدیک شدن به دوربین باشد، عکس‌ آن به ترتیب کوچک‌تر یا بزرگ‌تر خواهد شد. البته در این مثال، حالتی را که جسم به گونه‌ای حرکت کند که به علت فاصله‌ی زمانی بین هر بار عکس‌برداری، جسم به جای اول خود بازگردد را در نظر نگرفته‌ایم. چراکه در این حالت تشخیص حرکت جسم ناممکن است.

یادگیری عمیق و تصاویر دیجیتال 

با ظهور یادگیری عمیق طی سال‌های اخیر، یکی از حوزه‌هایی که این فناوری در آن به صورت گسترده مورد استفاده قرار گرفته است، تصویرپردازی دیجیتال (Digital imagery) است. دو چهارچوب (Framework) به خوبی شناخته‌شده‌ی یادگیری عمیق، شبکه‌ی عصبی کانولوشنCNN  و شبکه‌ی عصبی بازگشتیRNN هستند. با این‌که صحبت عمیق‌تر در این حوزه‌ها خارج از هدف این مقاله است، چندان نامرتبط نیست اگر اشاره کنیم CNN در گستره‌ای از کارهای تصویربردای استفاده می‌شود. این کارها شامل تشخیص چهره و سامانه‌های تشخیصی، آنالیز تصاویر پزشکی، تشخیص تصویر، و تحلیل ویدیوهای تمام متحرک می‌شوند. بعنوان مثال  AlexNet وجود دارد، که CNNی است که توجه‌ها را هنگامی به خود جلب کرد که برنده جایزه ۲۰۱۲ ImageNet Large Scale Visual Recognition Challenge شد.

یادگیری عمیق در پردازش تصویر

تکنینک‌های یادگیری عمیق با موفقیت در کارهای مرتبط با پردازش‌ تصویر به کار برده شده‌اند. یک مثال سر راست استفاده‌ی آن، «تشخیص لبه» است. شناسایی لبه‌ها در یک تصویر دیجیتال بخش غیرپیش‌پا افتاده و مهمی از پردازش تصویر است. به طور مثال عکسی را که شامل تصویر یک خودرو است در نظر بگیرید. کاری که ماشین باید انجام دهد، اعمال فیلتر محو، به گونه‌ای است که شماره پلاک خودرو نامشخص گردد.

اگر قدم‌های لازم برای این عمل، که به راحتی قابل تصور است، را در نظر بیاوریم، اولین قدم آن است که پلاک خودرو را بیابیم. شناسایی ویژگی‌های ظاهری، مانند چراغ جلو یا پلاک، به «تشخیص ویژگی» معروف است. اما پیش از آنکه بتوانیم ویژگی‌ها را تشخیص دهیم، لازم است که به دنبال لبه یا کناره‌های جسم موردنظر بگردیم. بنابراین، تشخیص لبه نقشی اساسی در تشخیص ویژگی دارد، که به نوبه خود لازم است تا بتوان از طریق آن فیلترهای مختلف را بر تصویر اعمال نمود.

 هنگامی که پلاک تشخیص داده شد، تنها کاری که باقی می‌ماند محو کردن کاراکترهای داخل چهارچوب آن است. نتیجه نهایی تصویر ثانویه‌ای است که از هر نظر مشابه تصویر اولیه است، با این تفاوت که اطلاعات به خصوص شناساننده‌ی خودرو دیگر قابل تشخیص نیستند.

تشخیص لبه، و وظیفه پییچده‌تر تشخیص ویژگی، به راحتی توسط CNNها در سیستم‌های یادگیری عمیق به‌کار می‌روند. با تشخیص ویژگی‌ها، CNNها می‌توانند عکس‌ها را دسته‌بندی کنند و اقسام دیگری از پیش‌بینی‌ها را انجام دهند. این، منجر به طرح این سوال می‌شود که آیا می‌توان CNNها را در بینایی ماشین به‌کار برد یا خیر. سوالی که پاسخ به آن، ما را به درک تفاوت بینایی ماشین و پردازش تصویر نزدیک می‌کند.

یادگیری عمیق در بینایی ماشین

بدون شک، تشخیص ویژگی و دسته‌بندی تصاویر ابزار مهمی برای ادراک ویژگی‌های یک عکس هستند. به همین دلیل، CNN ابزار باارزشی برای استفاده در سیستم‌های بینایی ماشین است. اما محتوای تصاویر چطور؟ آیا خودرو در حال نزدیک شدن به شما است یا دور شدن؟ بدون در نظر گرفتن مجموعه‌ای از عکس‌ها و ارتباط زمانی‌شان، هیچ راهی برای تشخیص قطعی وجود ندارد.

دومین چهارچوب که قبلا برای یادگیری عمیق ذکر شد، RNN است. CNN در پردازش تصویر کاربرد دارد، درحالی‌که RNN برای روشن‌سازی ارتباط زمانی جهت تعیین محتوای تصاویر کاربرد دارد. یک RNN شامل یک مکانیزم فیدبک حلقه‌ای است که اساسا نقش یک حافظه داخلی را ایفا می‌کند. این مکانیزیم که «حافظه‌ی بلندِ کوتاه مدت» (LSTM) نام‌گذاری شده است، قادر است انواع متنوع و متعددی از ارتباطات را کشف کند؛ از جمله آنهایی که تنها هنگامی واضح می‌شوند که محتوا را در نظر داشته باشیم. این سامانه‌ها به طور مداوم در انجام وظایفی مانند تکمیل خودکار متن به کار می‌روند؛ هنگامی که پیش‌بینی یک کلمه به آنچه که پیش از این در جمله رخ داده است بستگی دارد.

عنوان‌گذاری تصاویر

برای مواردی مانند یک تک‌عکس، یکی از کاربرد‌هایی که RNN در آن اعمال می‌شود «عنوان‌گذاری تصاویر» نام دارد. یعنی به صورت خودکار با توجه به آن‌چه در عکس وجود دارد، به عکس عنوانی داده شود؛ مثلا «وسیله نقلیه، یک خودرو سواری است»، یا «در راننده باز است». بدیهی است که این سطح از ادراک فواید بسیاری در بینایی ماشین داد. علاوه بر این، قدرت LSTM را می‌توان برای استفاده در مجموعه‌ای از تصاویر به‌کار گرفت.

با در اختیار داشتن مجموعه‌ای از عکس‌ها، RNN هم محتوای عکس‌‌ها و هم ارتباط زمانی بین آن‌ها را، با در نظر گرفتن برچسب زمانی عکس‌ها، مورد توجه قرار خواهد داد. حال تصور کنید که هر عکس توصیف دقیقی را نیز به همراه خود داشته باشد. همچنین این توصیف‌ها همراه با چند توصیف مشابه دیگر در دسته‌هایی مرتب شده باشند و نتیجه نهایی، پاراگرافی باشد که آن‌چه را در حال رخ دادن در یک بازه‌ی زمانی به خصوص است بیان می‌کند.

در واقعیت، سامانه‌های هیبریدی که از هردو چهارچوب RNN و CNN تشکیل شده‌اند، در وظایف پیچیده‌تری به‌کار برده می‌شوند. یکی از این سامانه‌های هیبریدی، DanQ نام دارد که از DeepSEA به عنوان بنیان سازنده خود استفاده کرده است. البته DeepSEA یک سامانه CNN تنهاست و  از RNN استفاده نمی‌کند. آزمایشات نشان می‌دهند که سامانه‌های هیبریدی از سامانه‌های دیگر بسیار بهتر عمل می‌کند؛ چراکه RNN تنها داده‌های انتزاعی‌ای را مورد توجه قرار می‌دهد که قبلا توسط CNN جداسازی شده‌اند. با این حال، این کار بستگی به نحوه پیاده‌سازی الگوریتم‌ها دارد و از محدوده‌ی بحث این مقاله جدا است.

جمع بندی تفاوت بینایی ماشین و پردازش تصویر:

بینایی ماشین و پردازش تصویر وظایفی متمایز، و با این حال مرتبطی در زمینه تصویرپردازی دیجیتال هستند. پردازش تصویر شامل تغییر تصاویر از طریق دستگاه‌هایی مانند فیلترهاست؛ درحالی که هدف سیستم‌های بینایی ماشین درک این است که در یک بازه‌ی زمانی که توسط یک چشم الکترونیکی ثبت شده‌است، چه اتفاقی در حال رخ دادن است. پردازش تصویر، با این‌که کاربردهای خاص خودش را نیز دارد دارد، بخش مهمی از یک سامانه بینایی ماشین است.

سامانه‌های یادگیری عمیق، در هر دو زمینه‌ی پردازش تصویر و بینایی ماشین با استفاده از گستره‌ای از چهارچوب‌ها و پیاده‌سازی‌های هیبریدی با موفقیت اعمال گشته‌اند. با پیشرفت الگوریتم‌های یادگیری عمیق و افزایش دائمی قدرت رایانش، سیستم‌های بینایی ماشین بدون شک بهتر خواهند گشت. از سوی دیگر، فناوری‌هایی مثل دوربین‌های هوشمند و ربات‌ها نیز به پیشرفت خود ادامه خواهند داد، تا جایی که بینایی ماشین را از آزمایشگاه‌ها خارج کرده و به زندگی روزمره وارد خواهند کرد.

منبع : آرمان رضایی – فنولوژی

تفاوت بینایی ماشین و بینایی کامپیوتر

بینایی ماشین و بینایی کامپیوتر

ایده‌ی خلق قوه‌ی بینایی برای رایانه‌ها چیز جدیدی نیست. دهه‌ها در داستان‌های تخیلی زیادی در مورد ماشین‌های که می‌توانند ببینند صحبت شده است. اما امروزه این موضوع دیگر یک تخیل صرف نیست. بینایی ماشین (Machine vision) اولین مفهومی بود که به وجود آمد. این مفهوم مهندسی، در حقیقت به کارگیری تکنولوژی‌های موجود برای دیدن و نظارت بر مراحل مختلف خط تولید یک محصول است. به عنوان مثال در یک کارخانه، می‌توان با استفاده از بینایی ماشین، خطاهای خط تولید محصولات را شناسایی کرد. یا در یک کارخانه مواد غذایی، با استفاده از این تکنولوژی، مراحل بسته‌بندی را زیر نظر گرفت.

تفاوت (Machine vision) و کامیپوتر

اگر (Machine vision) را مانند بدن یک انسان تصور کنیم، بینایی کامپیوتر (Computer vision)، در حقیقت مغز و سیستم عصبی این انسان است. یک سیستم بینایی ماشین، با استفاده از دوربین‌های مختلفی، یک تصویر را می‌بیند. پس از آن، الگوریتم‌های بینایی کامپیوتر، این تصویر را پردازش و تفسیر می‌کنند تا بتوان بر اساس داده‌های به‌دست‌آمده، تصمیم‌گیری نمود.

بینایی کامپیوتر را می‌توان به تنهایی و خارج از یک سیستم ترکیبی با (Machine vision) استفاده کرد. اما یک سیستم بینایی ماشین، بدون استفاده از بینایی کامپیوتر به عنوان مغز متفکر آن، کاربردی ندارد. بینایی کامپیوتر، مفهومی فراتر و گسترده‌تر از پردازش تصویر (image processing) است. در بینایی کامپیوتر، تصویرهای ما نیازی نیست الزاما تصاویر و ویدیوهای گرفته‌شده توسط دوربین‌های معمولی باشد؛ بلکه این تصاویر می‌توانند، تصاویر حاصل از سنسورهای گرمایی، مادون قرمز یا تشخیص حرکت باشند. علاوه بر این، بینایی کامپیوتر قادر است تصاویر سه بعدی یا متحرک را نیز پردازش کند. این تکنولوژی حتی قادر به تشخیص حرکات غیرقابل پیش‌بینی است؛ کاری که تکنولوژی‌های مشابه قادر به انجام آن نیستند. عملیات‌های پیچیده‌ی بینایی کامپیوتر در نهایت منجر می‌شوند از یک تصویر، اطلاعات ارزشمندی استخراج کنیم. 

با پیشرفت‌هایی که در حوزه‌ی بینایی کامپیوتر صورت گرفته، موارد استفاده از بینایی ماشین به شدت زیاد شده است. کاربردهایی مانند خودروهای خودران، تطبیق تصویر پاسپورت با چهره فرد در فرودگاه و انجام جراحی با استفاده از ربات، از کاربردهای جدید سیستم‌های بینایی ماشین و بینایی کامپیوتر است.

همکاری و تفاوت (Machine vision) و بینایی کامپیوتر

بینایی کامپیوتر تمام ماشین‌هایی که توسط رایانه‌ها کنترل می‌شوند را قادر می‌سازد تا ایمن‌تر و هوشمندانه‌تر عمل کنند. از کارخانه‌ها و زمین‌های کشاورزی بزرگ گرفته، تا پهپادهای کوچکی که کارهای متعددی انجام می‌دهند، بینایی کامپیوتر سبب شده تا پیشرفت‌های عظیمی صورت گیرد. دوربین و کامپیوتر با همکاری یکدیگر می‌توانند با سرعت حیرت‌انگیزی، کارهایی را انجام دهند که از حیطه‌ی قدرت هر انسانی خارج است.

اگر یک انسان بخواهد تصاویری که در یک ساعت بر روی Snapchat آپلود می‌شوند را ببیند، حدود ۱۰ سال زمان می‌برد! کند بودن انسان و همچنین کم بودن دقت وی، عاملی است که ما را مجبور به استفاده از بینایی ماشین و بینایی کامپیوتر کرده است. در دنیای امروز، کارخانه‌هایی که از بینایی ماشین استفاده نکنند، نمی‌توانند در بازار رقابتی دوام بیاورند. به عنوان یک مثال کوچک، برچسب‌های روی محصولات از ملزومات خط تولید هر کارخانه‌ی مواد غذایی است. به هیچ وجه توسط نیروی انسانی نمی‌توان تمامی محصولات تولیدشده را کنترل کرد و دید آیا برچسب به درستی چسبانده شده است یا نه.

اجزا اصلی در یک سیستم بینایی ماشین

یک سیستم بینایی ماشین استاندارد، دارای اجزای زیر است:

  • یک یا چند دوربین
  • سیستم نورپردازی برای اطمینان از کیفیت تصاویر گرفته‌شده
  • لنز
  • قاب نگهدارنده دوربین
  • کامپیوتر یا نرم‌افزار برای پردازش تصاویر
  • الگوریتم‌های یافتن الگوها یا سایر الگوریتم‌ها با توجه به طبیعت تصاویر
  • اجزای خارجی مانند مانیتور و بازوهای رباتیک

آینده (Machine vision) و بینایی کامپیوتر

در مورد آینده‌ی فناوری‌های بینایی ماشین و بینایی کامپیوتر، سناریوهای مختلفی وجود دارند که روز به روز نیز تغییر می‌کنند! هر چقدر که مرزهای جدیدی از فناوری یافت می‌شود، کاربردهای بیش‌تری نیز برای فناوری‌های بینایی ماشین ظهور می‌یابد. احتمالا به جای سازگارسازی سیستم‌های موجود، سیستم‌هایی با اهداف جدید در مکان‌های مختلف جایگذاری می‌شوند. لازم به ذکر است که کاربرد بینایی ماشین تنها به کارخانه‌های و کسب‌وکارهای خاص محدود نمی‌شود و روزانه راهکارهای بسیار جدیدی در تمامی حوزه‌های توسط شرکت‌های مختلف ارائه می‌گردد.

در بعد بینایی کامپیوتر، فناوری‌های مانند یادگیری عمیق، رایانش ابری و فناوری‌های مربوط به یکپارچه‌سازی داده‌ها، فرصت‌های بی‌نظیری را پیش روی ما قرار داده‌اند. هر کارخانه‌ای می‌تواند از فناوری‌های جدیدی مانند یادگیری ماشین بهره‌مند شود و داده‌های خود را نیز در اختیار سایر سیستم‌های ERP قرار دهد.  در بعد ماشینی، پیشرفت‌های بسیاری برای بهبود کیفیت‌ دوربین‌ها و لنزها و همچنین بازوهای رباتیک صورت خواهد گرفت.

منبع: علیرضا کریمی – فنولوژی

نگاهی بر پردازش زبان طبیعی

پردازش زبان طبیعی

پردازش زبان طبیعی یا به اختصار، NLP، یکی از شاخه‌های هوش مصنوعی است که به تعاملات بین رایانه و انسان، از طریق زبان طبیعی می‌پردازد. هدف نهایی NLP، خواندن، رمزگشایی، فهم و درک زبان انسان با روشی ارزشمند است. اکثر روش های پردازش زبان طبیعی برای استخراج و فهم معنای زبان انسانی، مبتنی بر تکنیک‌های یادگیری ماشین است.

یک تعامل معمولی، میان انسان و ماشین، شامل مراحل زیر است:

۱-انسان با ماشین صحبت می‌کند.

۲-ماشین، صدای او را دریافت می‌کند.

۳-صدای انسان به نوشته تبدیل می‌شود.

۴-داده‌های متنی، توسط رایانه، پردازش می‌شود.

۵-داده‌ی متنی، مجددا به صوت تبدیل می‌شود.

۶-ماشین، با پخش صوت، به کاربر پاسخ می‌دهد.

تاریخچه NLP

پردازش زبان طبیعی از دهه ۱۹۵۰ و با آزمایش تورینگ آغاز شد. پس از تلاش‌های اولیه، پژوهشگران متوجه شدند که پردازش زبان طبیعی خیلی پیچیده‌تر از چیزی است که تصور می‌کردند؛ ناچارا به زبان‌شناسان متوصل شدند؛ اما در آن زمان نظریه زبان‌شناسی محکمی وجود نداشت. در سال ۱۹۵۷ و با چاپ کتاب «ساختارهای نحوی» نوام چامسکی، گام مهمی در زمینه Natural Language Processing برداشته شد.

کاربرد پردازش زبان طبیعی چیست؟

NLP، کاربردهای فراوانی دارد. به طور خلاصه، می‌توان به کاربردهای زیر اشاره کرد:

  • کاربرد در ترجمه‌ی ماشینی مانند Google Translate
  • کاربرد در ویرایشگرهای متن مانند Microsoft Word و Google Docs برای تصحیح غلط‌های گرامری، نوشتاری و ویرایشی
  • پاسخ صوتی تعاملی (Interactive Voice Response یا IVR): از این مورد، در مراکز پاسخ‌گویی به مشتریان، برای پاسخ به سوالات متداول توسط ماشین، استفاده می‌شود.
  • دستیارهای صوتی 

چرا NLP، دشوار است؟

پردازش زبان طبیعی یا NLP، در علوم کامپیوتر، مسئله‌ای دشوار، به حساب می‌رود. علت این دشواری را باید در طبیعت زبان انسانی پیدا کرد. قوانین حاکم بر زبان انسان در هنگام برقراری ارتباط با دیگران، قوانین بسیار پیچیده‌ای است که شناخت و فهم آن برای کامپیوتر، آسان نیست. به عنوان مثال، انسان‌ها هنگام صحبت با یکدیگر، ممکن است از جملات طعنه‌آمیز که معنای روشنی ندارند استفاده کنند. البته، بعضی از قوانین هم واضح است. برای مثال، ما از پسوند‌هایی مانند “ها” و “ان” برای جمع‌بستن استفاده می‌کنیم.

درک کامل زبان انسان و چگونگی ارتباط انسان‌ها با یکدیگر، منوط به درک درست از معنی هر یک از کلمات و هم‌چینن قوانین حاکم بر ترکیب کلمات با یکدیگر است. درک زبان انسان، برای ما کار سختی نیست، اما به علت پیچیدگی‌های آن و مبهم بودن کاربردها، درک زبان طبیعی، برای ماشین، کار سختی است.

فناوری‌های مورد استفاده در پردازش زبان طبیعی چیست؟

در پردازش زبان طبیعی از دو تکنیک اصلی استفاده می‌شود:

۱تجزیه و تحلیل نحوی (Syntactic analysis)

آنالیز نحوی در پردازش زبان طبیعی

نحو یا Syntax، در واقع چیدمان صحیح کلمات در کنار یکدیگر برای ساخت جمله‌ای درست از نقطه نظر دستور زبان است. در پردازش زبان طبیعی، از آنالیز نحوی برای درک قوانین گرامری حاکم بر زبان استفاده می‌شود.

رایانه‌ها، تکنیک‌ها و الگوریتم‌های خاصی را بر مجموعه‌ای از کلمات اعمال می‌کنند، تا جملات درستی از نظر دستور زبان بسازند. چند مورد از این تکنیک‌ها عبارتند از:

  • کاهش (Lemmatization): در این روش، برای تجزیه و تحلیل آسان‌تر، اشکال مختلف یک کلمه را به فرمی واحد در می‌آوریم.
  • تقسیم‌بندی مورفولوژیکی (Morphological segmentation): در این تکنیک، واژه‌ها را به واحدهای کوچک‌تری به نام واژک (morphemes) تبدیل می‌کنیم.
  • تقسیم‌بندی واژه‌ها (Word segmentation): در این روش، یک متن طولانی را به واحد‌های کوچک‌تر (واژه‌ها) تبدیل می‌کنیم.
  • تشخیص نقش کلمات (Part-of-speech tagging):‌ در این تکنیک، نقش هر کلمه در جمله را تعیین می‌کنیم؛ برای مثال، تعیین می‌کنیم یک کلمه فعل است یا صفت یا ….
  • تجزیه (Parsing):‌ این روش، در واقع آنالیز گرامری جملات را مورد بررسی قرار می‌دهد.
  • تعیین جمله‌ها (Sentence breaking):‌ یکی از مهم‌ترین کارهایی که باید در پردازش زبان طبیعی انجام دهیم، شناخت درست شروع و انتهای جملات است.
  • ریشه‌یابی (Stemming): این تکنیک شامل یافتن فرم ساده و اولیه‌ی کلماتی می‌شود که با تغییراتی، در جمله استفاده شده‌اند.

۲تجزیه و تحلیل معنایی (semantic analysis)

در تکنیک‌های آنالیز معنایی، هدف ما درک معنای درست یک متن است. آنالیز معنایی، یکی از سخت‌ترین کارها در پردازش زبان طبیعی (NLP) است که هنوز هم مسائل حل‌نشده‌ی بسیاری درباره‌ی آن وجود دارد. در آنالیز معنایی، با پیاده‌سازی الگوریتم‌ها و روش‌های مختلف، سعی می‌کنیم معنای درست متن را درک کنیم.

چند مورد از این تکنیک‌ها عبارتند از:

  • شناسایی اسامی (Named entity recognition یا NER): در این روش، بخش‌هایی از متن را در گروه‌های از پیش‌تعیین‌شده‌ی خاصی قرار می‌دهیم. برای مثال، نام‌های خاص اشخاص و نام اماکن را از متن استخراج می‌کنیم.
  • ابهام‌زدایی از معنای کلمات (Word sense disambiguation): یک کلمه ممکن است معانی مختلفی داشته باشد؛ در این تکنیک، با توجه به سایر بخش‌ها متن، معنی متناسبی برای هر کلمه می‌یابیم.
  • تولید زبان طبیعی (Natural language generation): در این روش، با استفاده از دیتابیس‌های موجود، مفاهیم جدیدی خلق و آن‌ها را به زبان طبیعی تبدیل می‌کنیم.

چرا پردازش زبان طبیعی مهم است؟

حجم زیاده داده‌های متنی

پردازش زبان طبیعی، رایانه‌ها را قادر می‌سازد تا با زبان خود انسان‌ها با آن‌ها ارتباط برقرار کنند؛ برای مثال حرف انسان‌ها را بشنوند، آن را بخوانند، تحلیل کنند و قسمت‌های مهم آن را مشخص نمایند. ماشین‌های امروزی قادرند حجم بیش‌تر از داده‌های متنی را در زمان کم‌تری نسبت به انسان تحلیل کنند. علاوه بر این رایانه‌ها از اشتباه و دیدگاه‌های متعصبانه نیز دورند. تصور حجم زیاد داده‌های متنی که هر روز به خصوص در شبکه‌ای اجتماعی تولید می‌شوند، ما را وادار به استفاده از پردازش زبان طبیعی می‌کند.

ساختاربندی حجم زیادی از داده‌های بی‌ساختار!

زبان انسان به شدت پیچیده و نامفهوم است. ما انسان‌ها منظور خود را به روش‌های متعددی بیان می‌کنیم! علاوه بر این زبان‌های متعددی در دنیا وجود دارند که هر کدام قواعد دستوری مخصوص خود را دارا هستند. هنگامی که در شبکه‌های اجتماعی متنی را نگارش می‌کنیم، معمولا از علائم نگارشی استفاده نمی‌شود و ممکن است گویش یا لهجه را نیز وارد متن خود کنیم.

منبع : علیرضا کریمی- فنولوژی