بایگانی برچسب برای: k

مقالات پیرامون تشخیص اعداد و حروف دست نویس فارسی

 

1. ارائه یک روش ساختاری جدید مبتنی بر قطعه بندی تصویر نازک شده برای شناسایی اعداد دست نویس فارسی/عربی

چکیده- در این مقاله، یک روش ساختاری جدید برای استخراج ویژگی از اعداد فارسی/عربی دست نوشته، ارائه شده است. پس از پیش پردازش اولیه و تبدیل تصویر به تصویر باینری، ابتدا رقم دست نوشته، نازک شده و اسکلت آن از تصویر استخراج می شود. سپس نقاط مهم تصویر به دست آمده مشخص می شوند. رقم نازک شده به قطعه خط هایی تقسیم می شود و از هر قطعه، کدهای اولیه استخراج می شود. در نهایت یک بردار ویژگی به دست می آید که طول آن به تعداد قطعه خط ها بستگی دارد. یک مقایسه بین روش ساختاری ارائه شده و روش های آماری دیگر مانند روش های مبتنی بر تبدیل موجک، فرکتال و زرنیک، از نظر زمانی و درصد تشخیص انجام شده است. نتایج نشان می دهند که عملکرد این ویژگیهای ساختاری بسیار بهتر از ویژگی های آماری است. درصد تشخیص با این ویژگی ها و با طبقه بندی کننده مبتنی بر نزدیکترین همسایه، 94/44% به دست آمد. این آزمایشات بر روی دادگانی شامل 480 نمونه برای هر رقم انجام شد که 280 نمونه برای آموزش و 200 نمونه برای آزمایش به کار گرفته شدند.

کلمات کلیدی- روش ساختاری جدید، تشخیص دست نوشته، اعداد فارسی

فایل PDF – در 7 صفحه- نویسندگان: مجید زیارت بان، کریم فائز، سعید مظفری، مهدی ازوجی

ارائه یک روش ساختاری جدید مبتنی بر قطعه بندی تصویر نازک شده برای شناسایی اعداد دست نویس فارسی یا عربی

پسورد فایل : behsanandish.com


2.  بازشناسی برخط حروف مجزای فارسی با شبکه عصبی

چکیده- در این مقاله روشی برای بازشناسی برخط حروف مجزای فارسی با شبکههای عصبی ارائه می شود. پس از بازشناسی علامت های بالا یا پایین حرف ناشناخته، بدنه ی حرف از نظر تعداد نقاط و اندازه نرمالیزه می شود و مختصات نقاط بدنه ی نرمالیزه شده به عنوان ورودی یک شبکه ی عصبی سه لایه در نظر گرفته می شود و بدنه ی حرف ناشناخته بازشناسی می شود. میزان بازشناسی درست برای 4144 حرف، 93/9% است.

واژه های کلیدی- بازشناسی برخط، حروف مجزا،شبکه ی عصبی

فایل PDF – در 7 صفحه- نویسندگان: سید محمد رضوی، احسان اله کبیر

بازشناسی برخط حروف مجزای فارسی با شبکه عصبی

پسورد فایل : behsanandish.com


3. کاربرد ترکیب طبقه ها در بازشناسی ارقام فارسی

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

پایگاه داده استفاده شده شامل 2430 نمونه است. نرخ بازشناسی شبکه های عصبی پایه بر روی 530 نمونه آزمایشی 87% ، 85% و 83% و برای سیستم مرکب 91% است.

واژه های کلیدی- بازشناسی ارقام، ترکیب طبقه بندها، شبکه عصبی پرسپترون، مکان مشخصه، تحلیل مؤلفه های اصلی.

فایل PDF – در 5 صفحه- نویسندگان: سید حسن نبوی کریزی، رضا ابراهیم پور، احسان اله کبیر

کاربرد ترکیب طبقه ها در بازشناسی ارقام فارسی

پسورد فایل : behsanandish.com


4. بازشناسی حروف برخط فارسی با استفاده از مدل مخفی مارکوف

چکیده- در این مقاله، روشی برای بازشناسی حروف برخط فارسی که به صورت تنها نوشته شده اند، معرفی شده است. با توجه به شکل و ساختار بدنه اصلی، حروف فارسی به 17 گروه تقسیم می شوند. ابتدا، با استفاده از روش آماری مدل مخفی مارکوف به بازشناسی بدنه اصلی پرداخته شده است. در گام بعدی، بازشناسی نهایی در هر گروه با توجه به موقعیت علائم، نقاط و مدل مخفی مارکوف آن ها انجام شده است. روش پیشنهادی بر روی مجموعه داده “حروف برخط دانشگاه تربیت مدرس” اجرا شده و گروه بندی درست با دقت 96% و بازشناسی حروف با دقت 94% به دست آمده است.

کلمات کلیدی- دستنوشته برخط، فارسی، بازشناسی، مدل مخفی مارکوف.

فایل PDF – در 6 صفحه- نویسندگان: وحید قدس، احسان اله کبیر

بازشناسی حروف برخط فارسی با استفاده از مدل مخفی مارکوف

پسورد فایل : behsanandish.com


5.بازشناسی ارقام دستنویس فارسی مقاوم در برابر چرخش و تغییر مقیاس توسط طبقه بندی کننده SVM فازی مبتنی بر خوشه بند K-means

چکیده- در این مقاله روشی را برای تشخیص این ارقام معرفی کردیم که در برابر چرخش و تغییر مقیاس تا حد قابل قبولی مقاوم می باشد. در این مقاله هم برای استخراج ویژگی و هم برای طبقه بندی از دو روش مجزا استفاده کردیم. در مرحله اول برای استخراج ویژگی از آنالیز اجزای اصلی (PCA) استفاده کرده و در نوع دیگری از استخراج ویژگی از آنالیز تفکیک کننده ی خط (LDA) که برای کاهش ابعاد LDA، از تکنینک PCA استفاده کردیم. این ویژگی ها را با طبقه بندی کننده ی MLP و Fuzzy SVM به صورت جداگانه کلاسه بندی کردیم و نتایج را با هم مقایسه کردیم. برای نمایش اینکه روشمان در برابر چرخش و تغییر مقیاس مقاوم می باشد، 30 درصد کل ارقام پایگاه داده مان که متشکل از 860 رقم برای هر کدام از ارقام 0 تا 9 می باشد را با زاویه های مختلف به صورت تصادفی در جهت یا خلاف جهت عقربه ساعت چرخانه و نتایج به دست آمده را با حالت بدون چرخش مقایسه کردیم. نرخ بازشناسی روش پیشنهادی بر روی 7600 نمونه آزمایشی در حالت بدون چرخش، 97/3% به دست آمده که نسبت به نرخ بازشناسی همین پایگاه داده، در [1] و [2] به ترتیب 15/4% و 1/9% بهبود را نشان می دهد.

کلمات کلیدی- ارقام دستنویس، PCA-LDA، Fuzzy SVM، MLP، PCA

فایل PDF – در 6 صفحه- نویسنده: مهدی صالح پور

بازشناسی ارقام دستنویس فارسی مقاوم در برابر چرخش و تغییر مقیاس توسط طبقه بندی کننده SVM فازی مبتنی بر خوشه بند K-means

پسورد فایل : behsanandish.com


6. بررسی تأثیر ارتقاء تصویر و اصلاح شیب در بهبود نرخ بازشناسی ارقام جدا شده از اسناد دست نویس فارسی

چکیده- در این مقاله برای اولین بار میزان تأثیر ارتقاء تصویر و اصلاح شیب موجود در ارقام دست نویس فارسی، بر بهبود نرخ بازشناسی ارقام مورد بررسی قرار گرفته است. در ابتدا به دلیل اینکه جداسازی ارقام از تصاویر اسناد دست نویس منجر به ایجاد شکاف هایی در تصاویر ارقام جدا شده می شود، از عنصر ساختاری مناسبی برای ارتقاء تصاویر استفاده شده است. در گام بعدی، شیب موجود در ارقام، تخمین زده شده و اصلاح می گردد. بانک اطلاعاتی استفاده شده در این مقاله شامل ارقام جدا شده (4096 رقم در مجموعه آموزشی و 1532 رقم در مجموعه آزمایشی) از فرم هایی با پس زمینه ی رنگی است که توسط 500 نویسنده پر شده اند. آزمایشات انجام شده نشان می دهد که ارتقاء تصویر و اصلاح شیب در مرحله پیش پردازش، به طور میانگین نرخ بازشناسی را به میزان 3/3 درصد افزایش می دهد که نشان دهنده ی کارآمدی گام های پیشنهادی( ارتقاء تصویر و اصلاح شیب) در مرحله پیش پردازش است.

کلمات کلیدی- ارتقاء تصویر، عنصر ساختاری، اصلاح شیب، ماتریس شکاف، بازشناسی ارقام دست نویس فارسی.

فایل PDF – در 5 صفحه- نویسندگان: یونس اکبری، محمدجواد جلیلی، عاطفه فروزنده، جواد صدری

بررسی تأثیر ارتقاء تصویر و اصلاح شیب در بهبود نرخ بازشناسی ارقام جدا شده از اسناد دست نویس فارسی

پسورد فایل : behsanandish.com

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

سیستم توصیه گر (به انگلیسی: Recommender System) یا سامانه پیشنهادگر (واژه سیستم یا سامانه گاهی با پلتفرم یا موتور جایگزین می‌شود)، با تحلیل رفتار کاربر خود، اقدام به پیشنهاد مناسب‌ترین اقلام (داده، اطلاعات، کالا و…)می‌نماید. این سیستم رویکردی است که برای مواجهه با مشکلات ناشی از حجم فراوان و رو به رشد اطلاعات ارائه شده‌است و به کاربر خود کمک می‌کند تا در میان حجم عظیم اطلاعات سریع‌تر به هدف خود نزدیک شوند. برخی سامانه پیشنهادگر را معادل پالایش گروهی (به انگلیسی: Collaborative filtering) می‌دانند.

مقدمه

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

تعاریف متفاوتی برای سیستم‌های توصیه‌گر ارائه شده‌است. از آن جمله، تعریف کلی‌نگر و خلاصه آقای Ting-peng liang در سال ۲۰۰۷ است که RS را زیرمجموعه‌ای از DSSها می‌داند و آن‌ها راسیستم‌های اطلاعاتی تعریف می‌کند که، توانایی تحلیل رفتارهای گذشته و ارائه توصیه‌هایی برای مسائل جاری را دارا هستند. به زبان ساده‌تر در سیستم‌های توصیه‌گر تلاش بر این است تا با حدس زدن شیوه تفکر کاربر (به کمک اطلاعاتی که از نحوه رفتار وی یا کاربران مشابه وی و نظرات آن‌ها داریم) به وی مناسب‌ترین و نزدیک‌ترین کالا به سلیقه او را شناسایی و پیشنهاد کنیم. این سیستم‌ها در حقیقت همان فرایندی که ما در زندگی روزمره خود به کار می‌بریم و طی آن تلاش می‌کنیم تا افرادی با سلایق نزدیک به خود را پیدا کرده و از آنها در مورد انتخاب‌هایمان نظر بخواهیم. توصیه‌هایی که از سوی سیستم‌های توصیه‌گر ارائه می‌شوند به طور کلی می‌توانند دو نتیجه دربرداشته باشند:

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

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

مزایا و پیشرفت‌ها

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

تاریخچه

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

ظرفیت رایانه‌ها در فراهم آوردن توصیه‌ها تقریباً از همان اوایل تاریخ‌چه رایانه‌ها شناخته شد. گراندی، یک کتابدار کامپیوتری گامی اولیه به سمت سامانه‌های توصیه‌گر خودکار بود. این کتابدار یک توصیه‌گر نسبتاً ساده و اولیه بود که کاربران را به قالب‌هایی بر اساس مصاحبه کوتاه با استفاده از اطلاعات مستقیم‌کدشده(hard-coded) دربارهٔ سلایق کتاب قالب‌های مختلف گروه‌بندی می‌کرد تا توصیه‌ها را تولید کند، ولی این کار ورود اولیه مهم به فضای سامانه‌های توصیه‌گر قلمداد می‌شود.

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

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

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

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

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

جعبه ابزار تکنیک‌های توصیه گر به چیزی بیش از پالایش مشارکتی گسترش یافته‌اند و شامل رویکردهای محتوامحور(Content-Based) بر اساس متدهای بازیابی اطلاعات، استنتاج بیزی (Bayesian Inference) و استدلال مورد محور (Case-Based Reasonong) می‌باشد. این متدها بجای یا درعوض الگوهای نمره دهی کاربران، محتوا یا ویژگی‌های اصلی آیتم‌هایی که قرار است توصیه شود را درنظر می‌گیرند. با به بلوغ رسیدن استراتژی‌های توصیه مختلف، سامانه‌های توصیه‌گر ترکیبی (Hybrid Recommender Systems) نیز ظهور یافته‌اند و الگوریتم‌های مختلفی را در سیستم‌های مرکبی ترکیب کرده‌اند که بر اساس قدرت الگوریتم‌های تشکیل‌دهنده‌شان ایجاد شده‌اند. البته در کنار رویکردهای محتوا محور، پالایش مشارکتی، هم روش تکی و هم ترکیب‌شده‌اش به عنوان روشی مؤثر همچنان مطرح هستند.

زمانی که Netflix جایزه Netflix Prize را در سال ۲۰۰۶ به منظور بهبود بخشیدن وضعیت توصیه‌های فیلمش برقرار کرد، تحقیق بر روی الگوریتم‌های سامانه‌های توصیه‌گر توجه بسیاری را به خودش جلب کرد. هدف این رقابت ساختن یک الگوریتم توصیه‌گری بود که بتواند الگوریتم CineMatch که متعلق به خود Netflix بود را با ۱۰٪ بهبود در آزمایشات آفلاین شکست دهد. این امر موجب ایجاد خروشی از اقدامات شد، هم در بین محیط آکادمیک و هم در بین سایر علاقمندان. جایزه یک میلیون دلاری ارزشی را که فروشندگان برای دقت توصیه‌ها قائل هستند نشان می‌دهد[۱].

کاربردها

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

  • تجارت الکترونیک: برای توصیه محصولات و خدمات مختلف.
  • اینترانت‌های بنگاهی: برای پیدا کردن افراد خبره در یک زمینه خاص یا افرادی که در رویارویی با شرایط مشابه، تجاربی کسب کرده و راه حل‌هایی یافته‌اند (بیشتر داخل یک سازمان کاربرد دارد).
  • کتابخانه دیجیتال: پیدا کردن کتاب، مقاله و …
  • کاربردهای پزشکی: انتخاب پزشک متناسب با شرایط (مکان، نوع بیماری، زمان و …) بیمار، انتخاب دارو و …
  • مدیریت ارتباط با مشتری CRM: برای ارائه راهکارهایی برای حل مشکلات تولیدکننده و مصرف‌کننده در زنجیره تأمین.

مقایسه سامانه‌های توصیه گر و سامانه‌های تصمیم‌یار کلاسیک

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

تعاریف و اصطلاحات عمده

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

  • در سیستم‌های توصیه گر به کاربری که توصیه جاری در سیستم، برای وی در حال پردازش و آماده شدن است، کاربر فعال یا کاربر هدف می‌گویند.
  • الگوریتم‌های به کار رفته در این سیستم‌ها، از ماتریسی به نام ماتریس رتبه‌ها استفاده می‌کنند؛ اصطلاحات رایج برای این ماتریس Rating Database و Preference Database نیز هستند.
  • از فعل مصرف کردن در سیستم‌های توصیه‌گر، زمانی استفاده می‌کنند که کاربر توصیه ارائه شده را می‌پذیرد. به عبارتی وقتی کاربری پیشنهادی را که توسط سیستم به وی شده می‌پذیرد، می‌گوییم کاربر آن پیشنهاد را مصرف کرده، این پذیرش می‌تواند به شکل‌های مختلفی باشد، مثلاً کاربر، کتاب پیشنهادی را می‌خرد، سایت پیشنهادی را مرور می‌کند یا به شرکت خدماتی ای که به او پیشنهاد شده مراجعه می‌کند. ساختار ماتریس رتبه‌ها بدین گونه‌است که در آن، هر سطر ماتریس نمایانگر یک کاربر و هر ستون آن معرف کالایی (شئای) خاص است.

حال با مفهوم تابع سودمندی آشنا خواهیم شد که قصد داریم به کمک آن یک مدل کلی ریاضی از سیستم‌های توصیه‌گر را نیز ارائه دهیم. در واقع یک سیستم توصیه‌گر را می‌توان با این نگاشت همسان دانست و مدل کرد: {\displaystyle u:C*S->R}{\displaystyle u:C*S->R}

فرض کنید C مجموعه تمامی کاربران و S مجموعه اقلام در دسترس باشند. تابعی را که میزان مفید و متناسب بودن کالای S برای کاربر C را محاسبه می‌کند با u نشان می‌دهیم، که در آن R مجموعه‌ای است کاملاً مرتب (براساس میزان اهمیت). هرکدام از عناصر S را می‌توان با مجموعه‌ای از خصوصیات، مشخص کرد. برای مثال، محصولی مثل فیلم را می‌توان با مشخصه‌هایی چون عنوان فیلم، کارگردان، طول زمانی فیلم، تاریخ تولید و … ثبت کرد. همچنین عناصر مجموعه C را نیز می‌توان بر اساس ویژگی‌های مثل سن، جنسیت و … ثبت کرد. (باید توجه داشت که u روی تمام فضای مجموعه آغازین S×C تعریف شده نیست؛ از این رو باید برون‌یابی شود)

سیستم توصیه گر (Recommender System) قسمت 1
سیستم توصیه گر (Recommender System) قسمت 2
سیستم توصیه گر (Recommender System) قسمت 3

پردازش گفتار

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

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

مقدمه

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

۱-تحت تاثیر قرار گرفتن کیفیت سیگنال صوتی به وسیلهٔ نویز محیط و تابع انتقال سیستم انتقال مانند میکروفن، تلفن

۲-عدم وضوح مرز ما بین کلمات و واج‌ها در سیگنال صوتی

۳-تنوع وسیع سرعت بیان

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

۵-تاپیر تنوعات متعدد گوینده از جمله جنسیت، شرایط فیزیولوژیک و روانی بر گفتار.

۶-به کارگیری محدودیت‌های معنایی-نهوی زبان برای گفتار زبان طبیعی به روشی مشابه ارتباط انسان با انسان در سیستم بازشناسی.

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

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

تولید نرم‌افزار ترجمه گفتار

از جمله قابلیت‌های این نرم‌افزار این است که این نرم‌افزار قادر است فایلهای WAV،mp3 را مستقل از صدای گوینده به متن تبدیل کند ولی کیفیت ان کمتر از ان است که صدای فرد را به نرم‌افزار معرفی کنیم. از دیگر قابلیت‌های سیستم‌های گفتاری می‌توان به ترجمهٔ گفتار به سایر زبان‌ها اشاره کرد. از این قابلیت در جنگ امریکا و عراق استفاده شد. امریکایی‌ها سیستم‌هایی را طراحی و تولید کردند که قادر بود کلام عربی را به انگلیسی ترجمه کند. همچنین در انجام اقدامات امنیتی بهره برداری می‌کنند که می‌تواند کلمات کلیدی را برای این نرم‌افزار شناسایی کرد تا نسبت به ان کلمه خاص حساس شود تا در صورت استفاده از آن، سیستم این کلمات را رکورد کند. این قابلیت در سال ۱۹۹۴ در آمریکا طراحی و تولید شد و در سیستم‌های تلفنی به کار گرفته شد. در حال حاضر این نرم‌افزار طراحی و تولید شده‌است به گونه‌ای که در متن و گفتار کاربر، کلمهٔ خاصی را می‌توان فعال کرد و این نرم‌افزار می‌تواند ان کلمه را جستجو کند و کلمهٔ عبور کاربر ذخیره شود.

کاربردهای نرم‌افزار تشخیص گفتار (پردازش گفتار)

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

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

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

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

تکنولوژی بازشناسی گفتار

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

از جمله ویژگی‌های این طرح می‌توان به موارد زیر اشاره کرد:

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

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

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

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

۱- تنظیم آینه‌های بغل و عقب

۲- کنترل بالابر شیشه‌ها

۳- کنترل قفل کودک

۴- کنترل روغن ترمز و موتور یا بنزین در حال حرکت

۵- کنترل رادیو یا هر نوع رسانه دیگر در خودرو

۶- کنترل برف پاک کن‌ها

۷- تنظیم صندلی‌ها

۸- کنترل چراغ‌ها

۹- هر نوع دستور دیگر که انجام آن نیازمند حرکت اضافی راننده یا سرنشینان است.

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

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

گزارش طرح نرم‌افزار فناوری بازشناسی گفتار (پردازش گفتار)

۱- عنوان طرح: فناوری بازشناسی گفتار مقاوم در برابر نویز ۲- توضیح عمومی و کاربرد: با استفاده از این فناوری، صدای ضبط شده توسط یک میکروفون بازشناسی شده و به فرامین برای یک دستگاه الکترونیکی یا رایانه، تبدیل می‌شوند حوزه کاربرد این فناوری تمامی دستگاه‌های الکتریکی، الکترونیکی و رایانه‌ای است که به طریقی از کاربر فرمان می‌گیرند. تمام فرامین قابل بیان با استفاده از مجموعه متناهی کلمات گسسته را می‌توان با استفاده از این فناوری توسط میکروفون به دستگاه یا رایانه داد.

۳- مزایا در مقایسه با دیگر فناوری‌های مشابه: مهمترین خصوصیات این فناوری نیاز به توان پردازشی بسیار کم و مقاومت بسیار زیاد در مقابل سرو صدای محیط (نویز) است.

۴- شرح طرح: روش ارائه شده از سه بخش اصلی تشکیل شده‌است

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

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

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

استخراج ویژگی‌ها از سیگنال صدا:

اولین مرحله در مراحل یادگیری و بازشناسی استخراج ویژگی‌ها از سیگنال صداست. برای انجام این کار باید مراحل زیر را طی کرد:

۱- استخراج اسپکتروگرام صدا

۲- اعمال فیلترهای فیوژن ماکسیمم –ان بر روی فریم‌های اسپکتروگرام تولید شده

۳- اعمال فیلترهای شناسایی یکنواختی در طول اسپکتروگرام

الف ـ اولین مرحله در بازشناسی صدا، تبدیل سیگنال صدای ورودی به اسپکتروگرام با طول محدود است برای این کار با استفاده از الگوریتم استاندارد تبدیل سریع فوریه تبدیلات فوریه پنجره‌هایی به طول ۵۱۲ صدای ضبط شده با ۱۲۸ فریم همپوشانی گرفته و در کنار یکدیگر قرار داده می‌شود در پایان این مرحله، سیگنال یک بعدی صدا به تصویری دوبعدی تبدیل می‌شود

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

بازشناسی الگوها

در این بخش الگوریتم مقایسه یک ورودی صوتی با الگوی کلماتی که از قبل یاد گرفته شده‌اند ارائه می‌شود برای این کار الگوریتم مقایسه کشسان (۱) ارائه می‌شود. برای تصمیم گیری نهایی ورودی این بخش با تمام کلماتی که قبلاً یاد گرفته شده‌اند توسط این الگوریتم مقایسه شده و کلمه‌ای که بیشترین تطابق را داشته باشد به عنوان جواب انتخاب می‌شود. الگوریتم مقایسه کشسان ساختاری مشابه ماشین حالات محدود (۲) دارد با ۳ تفاوت مهم زیر (از این به بعد این الگوریتم را ماشین تطبیق دهندهٔ قابل انعطاف یاEMM می‌نامیم.) 1- بر خلاف EMM، FSM ممکن است بیش از یک حالت فعال در هر زمان وجود داشته باشد تعداد حالات فعال در زمان‌های مختلف نیز متفاوت است. در صورتی که یک EMM به وضعیتی برسد که هیچ حالت فعالی نداشته باشد به پایان کار خود رسیده‌است. 2- در EMM حالات فعال به جز شماره حالت خصوصیات دیگری نیز دارند. فهرست این خصوصیات عبارتند از:

الف ـ میزان تطابق وضعیت (۳)‌های قبلی: این معیار مشخص می‌کند که اگر اکنون در وضعیت N ام ماشین باشیم. N-1 وضعیت قبلی با چه درجه تطابقی شناسایی شده‌است.

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

3- در EMM مشابه ماشین‌های حالت محدود غیرقطعی (۴) با یک ورودی و از یک وضعیت ممکن است توان حرکت به بیش از یک وضعیت دیگر وجود داشته باشد در چنین حالتی تمامی وضعیت‌های بعدی همزمان تولید و پیموده می‌شوند.

روش کار EMM به این شکل است که برای مقایسه یک کلمه (الگو) با یک ورودی Ii فریم‌های خروجی بخش پیش پردازش اطلاعات (۱-۴) برای ورودی و Pi فریم‌های خروجی بخش یادگیری برای الگو خوانده خواهند شد. برای این کار یک EMM ساخته می‌شود که به اندازه فریم‌های الگو وضعیت دارد و انتقال بین وضعیت‌ها فقط در طول محور فریم‌های الگو قابل انجام است به این ترتیب با خواندن هر فریم ورودی (Ii) یا باید در وضعیت سابق الگو بمانیم یا به وضعیتی بعد از آن منتقل شویم. به این ترتیب با رسیدن هر فریم ورودی هر وضعیت فعلی فعال EMM به دو وضعیت جدید تبدیل می‌شود اما باید به طریقی از این افزایش نمایی جلوگیری کرد برای این کار وضعیت‌هایی که درجه شناسایی درستشان از حد خاصی کمتر باشد حذف می‌شوند.

تلفن همراه SPH-P۲۰۷ ساخته شرکت سامسونگ دارای نرم‌افزاری تشخیص گفتار است. که براین اساس به پیام‌های گفتاری سریعتر از تایپ کردن آنها روی صفحه شماره گیری جواب می‌دهد وظیفه اصلی این تلفن بی سیم تبدیل گفتار انسان به سیگنال‌های دیجیتالی و بالعکس می‌باشد تلفن SPH-P۲۰۷ سامسونگ اولین تلفنی است که از فناوری تشخیص گفتار برای دیکته یک متن استفاده میشود.

 

یادگیری ماشین – SVM یا ماشین بردار پشتیبان به زبان ساده

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

آشنایی با مفهوم دسته بندی

فرض کنید مجموعه داده ای داریم که ۵۰٪ افراد آن مرد و ۵۰٪ افراد آن زن هستند. این مجموعه داده می تواند مشتریان یک فروشگاه آنلاین باشد. با داشتن یک زیرمجموعه از این داده ها که جنسیت افراد در آن مشخص شده است، می خواهیم قوانینی ایجاد کنیم که به کمک آنها جنسیت بقیه افراد مجموعه را بتوانیم با دقت بالایی تعیین کنیم. تشخیص جنسیت بازدیدکنندگان فروشگاه، باعث می شود بتوانیم تبلیغات جداگانه ای را برای زنان و مردان نمایش دهیم و سودآوری فروشگاه را بالا ببریم . این فرآیند را در علم تحلیل داده، دسته بندی می نامیم .

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

SVM-1

 

با نگاه به نمودار فوق، حقایق زیر به سادگی قابل مشاهده است :

  1. مردان در این مجموعه، میانگین قد بلندتری دارند.
  2. زنان از میانگین طول موی بیشتری برخوردار هستند.

اگر یک داده جدید با قد ۱۸۰cm و طول موی ۴cm به ما داده شود، بهترین حدس ما برای ماشینی این شخص، دسته مردان خواهد بود .

بردارهای پشتیبان و ماشین بردار پشتیبان

بردارهای پشتیبان به زبان ساده، مجموعه ای از نقاط در فضای n بعدی داده ها هستند که مرز دسته ها را مشخص می کنند و مرزبندی و دسته بندی داده ها براساس آنها انجام می شود و با جابجایی یکی از آنها، خروجی دسته بندی ممکن است تغییر کند . به عنوان مثال در شکل فوق ، بردار (۴۵,۱۵۰) عضوی از بردار پشتیبان و متعلق به یک زن است . در فضای دوبعدی ،‌بردارهای پشتیبان، یک خط، در فضای سه بعدی یک صفحه و در فضای n بعدی یک ابر صفحه را شکل خواهند داد.

SVM یا ماشین بردار پشتیبان ، یک دسته بند یا مرزی است که با معیار قرار دادن بردارهای پشتیبان ، بهترین دسته بندی و تفکیک بین داده ها را برای ما مشخص می کند.

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

چگونه یک ماشین بر مبنای بردارهای پشتیبان ایجاد کنیم ؟

به ازای داده های موجود در مثال فوق، تعداد زیادی مرزبندی می توانیم داشته باشیم که سه تا از این مرزبندی ها در زیر نمایش داده شده است.

 

SVM-2

 

سوال اینجاست که بهترین مرزبندی در این مسأله کدام خط است ؟

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

توزیع غیر خطی داده ها و کاربرد ماشین بردار پشتیبان

اگر داده ها به صورت خطی قابل تفکیک باشند، الگوریتم فوق می تواند بهترین ماشین را برای تفکیک داده ها و تعیین دسته یک رکورد داده، ایجاد کند اما اگر داده ها به صورت خطی توزیع شده باشند (مانند شکل زیر )، SVM را چگونه تعیین کنیم ؟

 

SVM-3

 

در این حالت، ما نیاز داریم داده ها را به کمک یک تابع ریاضی (Kernel functions) به یک فضای دیگر ببریم (نگاشت کنیم ) که در آن فضا، داده ها تفکیک پذیر باشند و بتوان SVM آنها را به راحتی تعیین کرد. تعیین درست این تابع نگاشت در عملکرد ماشین بردار پشتیبان موثر است که در ادامه به صورت مختصر به آن اشاره شده است.

با فرض یافتن تابع تبدیل برای مثال فوق،‌ فضای داده ما به این حالت تبدیل خواهد شد :

 

SVM-4

 

در این فضای تبدیل شده، یافتن یک SVM به راحتی امکان پذیر است .

نگاهی دقیق تر به فرآیند ساخت SVM

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

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

SVM-5

SVM‌ در پایتون

برای استفاده از ماشین بردار پشتیبان در پایتون، توصیه بنده استفاده از کتابخانه یادگیری ماشین پایتون به نام scikitlearn است که تمام کرنل ها و توابع نگاشت را به صورت آماده شده دارد. سه تا تابعSVC , NuSVC , LinearSVC وظیفه اصلی دسته بندی را برعهده دارند . (SVC = Support Vector Classifier) . نمونه ای از دسته بندی با این توابع را در زیر می توانید مشاهده کنید :

 

SVM-6

ماشین بردار پشتیبانی در عمل

برای استفاده از SVM در مورد داده های واقعی ، چندین نکته را باید رعایت کنید تا نتایج قابل قبولی را بگیرید

  1. ابتدا داده ها را پالایش کنید (نقاط پرت ،‌ داده های ناموجود و …..)
  2. داده را عددی و نرمال کنید . این مباحث را در مقالات پیش پردازش داده ها دنبال کنید. به طور خلاصه ، داده هایی مانند جنسیت، رشته تحصیلی و … را به عدد تبدیل کنید و سعی کنید مقادیر همه صفات بین یک تا منهای یک [۱,-۱] نرمال شوند تا بزرگ یا کوچک بودن مقادیر یک ویژگی داده ها،‌ ماشین را تحت تاثیر قرار ندهد .
  3. کرنل های مختلف را امتحان و به ازای هر کدام، با توجه به مجموعه داده آموزشی که در اختیار دارید و دسته بندی داده های آنها مشخص است، دقت SVM را اندازه گیری کنید و در صورت نیاز پارامتر های توابع تبدیل را تغییر دهید تا جواب های بهتری بگیرید. این کار را برای کرنل های مختلف هم امتحان کنید . می توانید از کرنل RBF شروع کنید .

نقاط ضعف ماشین بردار پشتیان

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

با این وجود، SVM‌ ها دارای یک شالوده نظری منسجم بوده و جواب های تولید شده توسط آنها ، سراسری و یکتا می باشد. امروزه ماشینهای بردار پشتیبان، به متداول ترین تکنیک های پیش بینی در داده کاوی تبدیل شده اند.

سخن پایانی

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

ساختار اصلی این نوشتار از روی یک مقاله سایت آنالیتیکزویدیا برداشته شده است و برای دو بخش پایانی مقاله هم از کتاب «داده کاوی پیشرفته : مفاهیم و الگوریتم ها» دکتر شهرابی استفاده شده است .

منبع


آشنایی با ماشین بردار پشتیبان (SVM) – مرور کلی

SVM یک مدل یادگیری نظارت شده است.

پس قبل از این که به سراغ آن برویم باید یک مجموعه داده(Dataset) که از قبل برچسب‌گذاری شده(Labeled) را داشته باشیم.

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

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

رویکرد اولمن می‌توانم برچسب‌هایی با عنوان‌های: اورژانسی، شکایت و راهنمایی در جیمیل(GMail) خود ایجاد کنم.

اشکال این روش این است که من باید مدتی فکر کنم و همه کلمه‌های کلیدی(Keyword) بالغوه که مشتری‌های عصبانی ممکن است در ایمیل‌های خود استفاده کنند را پیدا کنم. طبیعی است که بعضی از آن‌ها را هم از قلم انداخته شوند. با گذشت زمان هم لیست این کلمه‌ها به احتمال زیاد شلوغ و مدیریت کردن آن‌ها به کار مشکلی تبدیل می‌شود.

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

قدم اولبه تعدادی ایمیل نیاز دارم.(هرچه بیشتر بهتر)

قدم دومعنوان ایمیل‌های قدم اول رو می‌خوانم و آن‌ها را در یکی از دو گروه «شکایت است» و یا «شکایت نیست» طبقه‌بندی می‌کنم. اینجوری می‌توانم ایمیل‌ها را برچسب ‌گذاری کنم.

قدم سومروی این مجموعه داده، مدلی را آموزش می‌دهم.

قدم چهارمکیفیت یا صحت پیش‌بینی های مدل آموزش داده‌شده را ارزیابی می‌کنم.(با استفاده از روش Cross Validation)

قدم پنجماز این مدل برای پیش‌بینی این که ایمیل‌های جدیدی که رسیده‌اند، شکایت هستند یا نه، استفاده می‌کنم.

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

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

SVM یک مدل خطی را یاد می‌گیرد

در مثال قبل دیدیم که در قدم سوم یک الگوریتم یادگیری نظارت شده مثل SVM به کمک داده‌هایی که از قبل برچسب‌گذاری شده‌اند آموزشداده شد. اما برای چه چیزی آموزش داده شد؟ برای این که چیزی را یاد بگیرد.

چه چیزی را یاد بگیرد؟

در مورد SVM، یک مدل خطیرا یاد میگیرد.

مدل خطی چیست؟ اگر بخواهیم به زبان ساده بیان کنیم یک خط است.(و در حالت پیچیده‌تر یک ابر صفحه).

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

 

svm

SVM قادر است که خطی را پیدا کند که داده‌ها را جدا می‌کند.

 

خب پس اگر SVM فقط یک خط است، پس چرا ما داریم راجع به مدل خطی صحبت می‌کنیم؟

برای این که ما همینطوری نمی‌توانیم به یک خط چیزی را آموزش بدهیم.

در عوض:

  1. در نظر می‌گیریم که داده‌هایی که می‌خواهیم طبقه‌بندی کنیم، می‌توانند به وسیله یک خط از هم تفکیک شوند.
  2. می‌دانیم که یک خط می‌تواند به کمک معادله y=wx+by=wx+b نمایش داده شود.(این همان مدل ما است)
  3. می‌دانیم با تغییر دادن مقدار w و b بی‌نهایت خط وجود خواهد داشت.
  4. برای تعیین این که کدام مقدار w و b بهترینخط جداکننده داده‌ها را به ما می‌دهد، از یک الگوریتم استفاده می‌کنیم.

SVM یکی از این الگوریتم‌ها هست که می‌تواند این کار را انجام دهد.

الگوریتم یا مدل؟

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

SVM یا SVMها؟

بعضی وقت‌ها می‌بینیم که مردم راجع به SVM و بعضی وقت‌ها هم راجع به SVMها صحبت می‌کنند.

طبق معمول ویکی‌پدیا در روشن و شفاف کردن چیزها به ما کمک می‌کند:

در یادگیری ماشینی، ماشین‌های بردار پشتیبان (SVMsمدل‌های یادگیری نظارت شده به همراه الگوریتم‌های آموزش مربوطههستندکه در تحلیل داده‌های استفاده شده در  رگرسیون و طبقه‌بندی از آن‌ها استفاده می‌شود.(ویکی‌پدیا)

پس حالا ما این را می‌دانیم که چندین مدل‌ متعلق به خانواده SVM وجود دارند.

SVMها – ماشین‌های بردار پشتیبان

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

  • SVM برای طبقه‌بندی استفاده می‌شود.
  • SVR یا(Support Vector Regression) برای رگرسیون.

پس گفتن ماشین‌های بردار پشتیبان هم دیگه الآن منطقی به نظر میاد. با این وجود این پایان داستان نیست!

طبقه‌بندی

در سال ۱۹۵۷ یک مدل خطی ساده به نام پرسپترون توسط فردی به نام فرانک روزنبلت برای طبقه‌بندی اختراع شد(که در واقع اساس شبکه‌های عصبی ساده‌ای به نام پرسپترون چند لایه است).

چند سال بعد، واپنیک و چروننکیس مدل دیگری به نام «طبقه‌بندی کننده حداکث حاشیه» پیشنهاد دادند و همان‌جا بود که SVM متولد شد.

در سال ۱۹۹۲ واپنیک و همکارانش ایده‌ای داشتند که یک چیزی به نام کلک کرنل(Kernel Trick) را به روش قبلی اضافه کنند تا به آن‌ها اجازه دهد که حتی داده‌هایی که به صورت خطی تفکیک‌پذیر نیستند را هم طبقه‌بندی کنند.

سرانجام در سال ۱۹۹۵، کورتز و واپنیک، طبقه‌بندی کننده حاشیه نرم را معرفی کردند که به SVM اجازه می‌دهد تا بعضی از اشتباهات در طبقه‌بندی را هم بپذیرد.

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

  1. طبقه‌بندی کننده حاشیه حداکثر.
  2. نسخه‌ای که از کلک کرنل استفاده می‌کند.
  3. نسخه‌ای که از حاشیه نرم استفاده می‌کند.
  4. نسخه‌ای که ترکیب همه موارد قبلی است.

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

به همین دلیل است که وقتی از یک زبان برنامه‌‌نویسی استفاده می‌کنید می‌پرسید از کدام کرنل باید استفاده کنیم(بخاطر کرنل‌های مختلفی که وجود دارند) و یا کدام مقدار ابرپارامتر C را باید استفاده کنید(برای کنترل تاثیر حاشیه نرم).

رگرسیون

در سال ۱۹۹۶، واپنیک و همکارانش، نسخه‌ای از SVM را پیشنهاد دادند که به جای طبقه‌بندی، عمل رگرسیون را انجام می‌دهد. این مورد به Support Vector Regression یا SVR معروف است. همانند SVM در این مدل نیز از کلک کرنل و ابرپارامتر C  استفاده می‌شود.

در آینده مقاله ساده‌ای در مورد توضیح چگونگی استفاده از  SVR در زبان R خواهم نوشت و آدرس آن را همین‌جا قرار خواهم داد.

اگر علاقمند هستید که راجع به SVR بیشتر بدانیند، می‌توانید به این آموزش خوب که نوشته Smola and Schölkopft است، مراجعه کنید.

خلاصه تاریخچه

  • طبقه‌بندی کننده حاشیه حداکثر (۱۹۶۳ یا ۱۹۷۹)
  • کلک کرنل (۱۹۹۲)
  • طبقه‌بندی کننده حاشیه نرم (۱۹۹۵)
  • رگرسیون بردار پشتیبان (۱۹۹۶)

در صورتی که مایلید بیشتر راجع به تاریخچه بدانید، می‌توانید به مقاله مرور همراه با جزییات از تاریخچه مراجعه کنید.

انواع دیگری از ماشین‌های بردار پشتیبان

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

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

نتیجه‌گیری

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

امیدوارم این مقاله دید وسیع‌تری از چشم‌انداز  SVM به شما داده باشد و کمک کرده باشد که بهتر این ماشین‌ها را بشناسید و درک کنید.

اگه مایلید که بیشتر راجع به نحوه کار SVM در طبقه‌بندی بدانید، می‌توانید به آموزش‌های ریاضی مربوط به آن مراجعه کنید.

اصلاح دیجیتالی عکس در دوربین

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

اندازه عکس

در اکثر دوربینهای دیجیتال امکان عوض کردن اندازه عکس وجود دارد . این اندازه معمولا” به واحد پیکسل بیان می شود ،1920×2560،1200×1600،960×1280 و یا 480×640 ، هرچه اندازه قطع عکس را کوچک تر انتخاب کنید ، می توانید تعداد عکسهای بیشتری را روی کارت حافظه ذخیره کنید . یک عکس کوچک باعث می شود که ارسال آن ازطریق e-mail ساده تر و سریع تر صورت گیرد . اما از طرف دیگر این نوع عکس ها ، مناسب چاپ در قطع بزرگ نیستند .

کیفیت عکس

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

وضوح عکس

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

تعادل نور سفید

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

حالت رنگ

بعضی از دوربینها دارای قابلیت عکاسی در حالت رنگ های مختلف مثل سیاه و سفید ، غلظت رنگ بالا و یا پایین و یا  تون قهوه ای رنگ معروف به سپیا (Sepia )هستند .

حساسیت به نور

در دوربینهای معمولی که با فیلم کار می کنند و در این کتاب دوربینهای آنالوگ نامیده می شوند ، می توان حساسیت فیلم را مناسب نوع فیلمی که به کار می برید ، انتخاب وتنظیم کرد . هرچه حساسیت فیلم پایین تر باشد ، دانه هایی که روی فیلم هستند ریزتر و جزئیات زیادتری از سوژه در عکس ثبت می شوند . واحد حساسیت فیلم به ISO بیان می شود که ترکیبی از سیستم آمریکایی ASA وسیستم آلمانی DIN است . مثلا” 400/27˚ ISO واحدی برای نمایش فیلم با حساسیت 400 ایزو است .

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

کار روی عکسها درون دوربین

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

ذخیره عکسها در پوشه های مختلف

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

تنظیم نامگذاری عکسها

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

حذف کردن عکسها

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

منبع


دوربین های دیجیتال:

 

دوربین ۳۶۰ درجه ی ozo محصول نوکیا

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

تاریخچه:

در سال ۱۹۷۵ اولین دوربین دیجیتال جهان توسط استیون ساسون (Steve Sasson) یکی از مهندسان شرکت ایستمن کداک (Eastman Kodak) ساخته شد. این ابزار ۳٫۶ کیلوگرمی می توانست عکس‌های ۰٫۰۱ مگاپیکسلی خود را بر روی یک نوار کاست ضبط کند و نوردهی هر عکس به ۲۳ ثانیه زمان نیاز داشت.

 

اولین دوربین دیجیتال دنیا

عملکرد:

 

گرچه اصول کلی این دوربین‌ها شبیه به دوربین‌های فیلمی هستند، نحوه کار داخل این دوربین‌ها کاملاً متفاوت است. در این دوربین‌ها تصویر توسط یک سنسور CCD یا یک CMOS گرفته می‌شود. CCD بصورت ردیفها و ستونهایی از سنسورهای نقطه‌ای نور هستند که هر چه تعداد این نقاط بیشتر و فشرده تر باشد، تصویر دارای دقت بالاتری است) هر سنسور نور را به ولتاژی متناسب با درخشندگی نور تبدیل کرده و آن را به بخش تبدیل سیگنال‌های آنالوگ به دیجیتال ADC می‌فرستد که در آنجا نوسانات دریافتی از CCD به کدهای مجزای باینری(عددهای مبنای دو بصورت صفر و یک) تبدیل می‌شود. خروجی دیجیتال از ADC به یک پردازنده سیگنال‌های دیجیتال DSP فرستاده می‌شود که کنتراست و جزئیات تصویر در آن تنظیم می‌شود و قبل از فرستادن تصویر به حافظه برای ذخیره تصویر، اطلاعات را به یک فایل فشرده تبدیل می‌کند. هر چه نور درخشنده‌تر باشد، ولتاژ بالاتری تولید شده و در نتیجه پیکسل‌های رایانه‌ای روشن‌تری ایجاد می‌شود. هر چه تعداد این سنسورها که به‌صورت نقطه هستند بیشتر باشد، وضوح تصویر به دست آمده بیشتر است و جزئیات بیشتری از تصویر گرفته می‌شود.

سنسورهای CCD و CMOS

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

 

سنسور CMOS و سنسور CCD

تفاوت دیجیتال و آنالوگ چیست؟

در فناوری آنالوگ، امواج و یا سیگنال به شکل اولیه ضبط و یا استفاده میشوند. برای مثال در یک دستگاه ضبط صوت آنالوگ سیگنال دریافت شده مستقیما از میکروفون دریافت و به نوار کاست منتقل میشود. صوت شما که از میکروفن دریافت میشود به صورت طبیعی یا همان آنالوگ است و امواج ضبط شده بر روی نوار کاست نیزبه همین صورت (آنالوگ) خواهد بود. این امواج میتواند از روی نوار خوانده و یا تقویت شوند و برای تولید صدا به بلندگو ها فرستاده شوند. واژه انالوگ از واژه یونانی ΑΝΆΛΟΓΟΣ که معنای “نسبی” می دهد گرفته شده است.

در فناوری دیجیتال امواج نمونه ای از امواج آنالوگ در یک سری از فواصل میشوند. سپس تبدیل به یک سری اعداد(صفر و یک) میشوند که توانایی ذخیره شدن روی دستگاه های دیجیتالی را خواهند داشت.

در یک سی دی میزان این نمونه سازی ۴۴۰۰۰ نمونه (سیگنال) در هر ثانیه است. به عبارت دیگر ۴۴۰۰۰ شماره در هر ثانیه از یک موسیقی توسط دستگاه خوانده میشود. برای شنیدن موسیقی اعداد به صورت امواج ولتاژ(مستقیم یا متناوب) در می آیند که به صوت اصلی بسیار نزدیک است.

واژه دیجیتال از لغت DIGIT (رقم) ویا DIGITUS (واژه پونانی به معنی انگشت) گرفته شده، بخاطر اینکه از انگشتان برای شمارش استفاده میشود.

تصاویر رنگی در دوربین های دیجیتال:

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

 

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

 

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

 

 

 

منبع


منابع

  1. http://fa.wikipedia.org
  2. http://www.camshop.ir
  3. http://article.tebyan.net
  4. http://newnesh.com

دوربین دیجیتال چیست؟ قسمت 1
دوربین دیجیتال چیست؟ قسمت 2
دوربین دیجیتال چیست؟ قسمت 3

ارتباط یادگیری ماشین با آمار

یادگیری ماشین و آمار رشته های نزدیکی هستند. طبق نظر مایکل. ال. جردن (Micheal l. Jordan) ایده های یادگیری ماشین، از اصول متدلوژی گرفته تا ابزار نظری، پیشینه ای طولانی در آمار دارند. او همچنین عبارت علم داده ها را برای نام گذاری کل این رشته پیشنهاد کرد.

لئو بریمن (Leo Breiman) دو پارادایم آماری را مطرح ساخت: مدل داده و مدل الگوریتمیک، که مدل “الگوریتمیک” کما بیش به معنای الگوریتم های یادگیری ماشین مثل جنگل تصادفی است.

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

تئوری یادگیری ماشین

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

تحلیل محاسباتی الگوریتم های یادگیری ماشین و عملکرد آن ها شاخه ای از علوم کامپیوتر نظری تحت عنوان نظریه یادگیری محاسباتی را تشکیل می دهد. چون مجموعه های داده های آموزشی، متناهی هستند و آینده قطعیت ندارد، نظریه یادگیری معمولا تضمینی در مورد عملکرد الگوریتم ها به ما نمی دهد. در عوض، کران های احتمالاتی روی عملکرد، بسیار معمول هستند. تجزیه اُریب-واریانس (bias-variance decomposition) راهی برای کمّی سازی خطای تعمیم دهی است.

برای داشتن بهترین عملکرد در چهارچوب تعمیم دهی، پیچیدگی فرض باید به اندازه پیچیدگی تابع زمینه داده ها باشد. اگر فرض پیچیدگی کمتری از تابع داشته باشد، آنگاه مدل، داده ها را زیربرازش (underfit) کرده است. اگر در پاسخ، پیچیدگی مدل افزایش یابد، آنگاه خطای آموزش کاهش می یابد. اما اگر فرض بسیار پیچیده باشد، مدل در معرض بیش برازش  (overfit)قرار می گیرد و تعمیم دهی ضعیف می شود.

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

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

یادگیری درخت تصمیم یا Decision tree learning

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

یادگیری قانون وابستگی

یادگیری قانون وابستگی روشی برای کشف روابط جالب توجه میان متغیرها در پایگاه های بزرگ داده است.

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

یک الگوریتم شبکه عصبی مصنوعی (ANN)، که معمولا “شبکه عصبی” (NN) نامیده می شود، الگوریتمی است که از ساختار و جنبه های عملکردی شبکه های عصبی بیولوژیکی الهام گرفته شده است. در این شبکه، محاسبات در قالب گروه های متصلی از نورون های مصنوعی، ساختار می یابند و اطلاعات را با یک روش پیوندگرایی به محاسبات، پردازش می کند. شبکه های عصبی مدرن، ابزارهای مدل سازی غیر خطی داده های آماری هستند. این شبکه ها معمولا برای مدل سازی روابط پیچیده بین ورودی ها و خروجی ها، الگو شناسی در داده ها، یا دریافت ساختار آماری در یک توزیع توئم احتمال میان متغیر های مشاهده شده استفاده می شوند.

یادگیری عمیق

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

برنامه نویسی منطقی استقرایی

برنامه نویسی منطقی استقرایی (ILP) روشی برای هدایت یادگیری با استفاده از برنامه نویسی منطقی به عنوان نمایشی یکنواخت برای مثال ها (داده ها)ی ورودی، دانش پس زمینه و فرضیات است. با داشتن یک کدگذاری (encoding) از دانشِ معلومِ پس زمینه و مجموعه ای از مثال ها که به عنوان پایگاه داده ای از حقایق نمایش داده می شود، یک سیستم ILP برنامه ای منطقی استخراج می کند که تمام مثال های مثبت را نتیجه دهد و هیچ یک از مثال های منفی را نتیجه ندهد. برنامه نویسی استقرایی (inductive programming) شاخه ای مرتبط است که هر نوع زبان برنامه نویسی برای نمایش فرضیات را در بر می گیرد (و نه فقط برنامه نویسی منطقی)، از قبیل برنامه های تابعی.

ماشین های بُردار پشتیبانی

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

ماشین بردار پشتیبانی، دسته ساز (طبقه سازی) است که فضای ورودی خود را به دو ناحیه تقسیم می کند، که توسط یک مرز خطی از هم جدا شده اند. در این مثال، ماشین یاد گرفته است که دایره های سفید و سیاه را از هم جدا کند.

 خوشه بندی یا Clustering

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

شبکه های بِیزی یا Bayesian networks

شبکه بیزی، شبکه باور (belief network) یا مدل گراف جهتدار غیرمدور، یک مدل گرافی احتمالاتی است که مجموعه متغیرهای تصادفی و استقلال شرطی آن ها را توسط یک گراف جهتدار غیرمدور (DAG) نمایش می دهد. برای مثال، شبکه بیزی می تواند ارتباط های احتمالاتی میان بیماری ها و علائم بیماری را نمایش دهد. با داشتن علائم، شبکه می تواند احتمال وجود بیماری های مختلف را محاسبه کند. الگوریتم های اثربخشی وجود دارند که استنباط و یادگیری را انجام می دهند.

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

تمرکز روش یادگیری تقویتی بر این است که یک عامل چگونه باید در یک محیط عمل کند تا نوعی پاداش بلند مدت را بیشینه کند. الگوریتم های یادگیری تقویتی سعی دارند قاعده ای پیدا کنند که وضعیت های جهان را به عمل هایی که عامل باید در این وضعیت ها انجام دهد، تصویر کند. تفاوت یادگیری تقویتی با یادگیری نظارت شده در این است که جفت های صحیح وردودی/خروجی هرگز ارائه نمی شوند و نیز فعالیت های زیر-بهین (sub-optimal) نیز صریحاً اصلاح نمی شوند.

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

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

الگوریتم های یادگیری منیفلد (Manifold learning) سعی دارند همین کار را با این محدودیت که نمایش یادگیری شده بُعد پایینی دارد، انجام دهند. الگوریتم های کدگذاری تُنُک سعی دارند همین کار را با این محدودیت که نمایش یادگیری شده تنک است (یعنی صفرهای زیادی دارد)، انجام دهند. الگوریتم های یادگیری زیرفضای چندخطی سعی دارند نمایش های با بُعد پایین را مستقیماً از نمایش های تانسوری داده های چند بعدی، بدون دادن شکل بُرداری (بعد بالا) به آن ها، یادگیری کنند.

الگوریتم های یادگیری عمیق، چندین سطح نمایش، یا سلسله ای از ویژگی ها را کشف می کنند، که ویژگی های سطح بالاتر و انتزاعی تر، بر حسب ویژگی های سطح پایین تر تعریف شده اند (یا آن ها را تولید می کنند). استدلال شده است که یک ماشین هوشمند ماشینی است که نمایشی را یاد می گیرد که فاکتورهای اساسی تغییرات را که داده های مشاهده شده را توضیح می دهند، تمییز دهد.

یادگیری تشابه و متریک

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

یادگیری دیکشنری تُنُک یا Sparse dictionary learning

در این روش، یک داده به شکل ترکیبی خطی از توابع پایه ای نمایش داده می شود، و فرض می شود که ضرایب این ترکیب تنک هستند. فرض کنید که x یک داده d بُعدی و D یک ماتریس d در n باشد که هر ستون آن نمایشگر یک تابع پایه ای است. r ضریب نمایش x با استفاده از D است. از نظر ریاضی، یادگیری دیکشنری تنک به معنی حل دستگاه x ≈ Dr است که در آن r تنک است. بطور کلی n از d بزرگ تر فرض می شود تا آزادی برای نمایش تنک فراهم شود.

یادگیری دیکشنری با نمایش های تُنُک “ان-پی کاملِ قوی”  (strongly NP-hard) است و حل تقریبی آن هم دشوار است. یک روش ابتکاری محبوب برای یادگیری دیکشنری تنک K-SVD است.

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

الگوریتم های ژنتیک

یک الگوریتم ژنتیک (GA)، الگورریتم جستجوی ابتکاری است که از فرایند انتخاب طبیعی  تقلید می کند، و به امید یافتن پاسخ های مناسب به یک مسئله، ازروش های مثل جهش (mutation) و دوتیرگی (crossover) برای تولید کروموزوم جدید، استفاده می کند. در یادگیری ماشین، الگوریتم های ژنتیک در دهه های 1980 و 1990 کاربرد یافتند. برعکس، تکنیک های یادگیری ماشین نیز برای بهبود عملکرد الگوریتم های تکاملی و ژنتیک مورد استفاده قرار گرفته اند.

یادگیری ماشین قانون-محور

یادگیری ماشین قانون-محور عبارتی کلی برای هر نوع روش یادگیری ماشینی است که  برای ذخیره، کنترل یا استفاده از دانش، “قوانینی” را شناسایی، یادگیری یا استنتاج می کند. ویژگی مشخصه یک ماشین یادگیرنده قانون-محور، شناسایی و استفاده از مجموعه ای از قوانین است که بطور جمعی، نمایشگر دانش فراگرفته شده توسط سیستم هستند. این روش، با سایر یادگیرنده های ماشینی که عموماً یک مدل واحد را در تمام موارد برای پیشگویی می شناسند، در تمایز است. روش های یادگیری ماشین قانون-محور شامل سیستم های طبقه ساز یادگیرنده، یادگیری قانون وابستگی و سیستم های ایمنی مصنوعی هستند.

سیستم های طبقه ساز یادگیرنده Learning classifier systems

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

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

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

  • اثبات قضیه بطور خودکار
  • وبسایت های تطبیقی
  • هوش مصنوعی احساسی
  • بیوانفوماتیک
  • واسط مغز و رایانه
  • شیمی‌ انفورماتیک
  • طبقه بندی رشته های DNA
  • آناتومی محاسباتی
  • بینایی ماشین، از جمله شناسایی اشیاء
  • شناسایی کارت اعتباری جعلی
  • بازی عمومی (general game playing)
  • بازیابی اطلاعات
  • شناسایی کلاه برداری های اینترنتی
  • زبان شناسی
  • بازاریابی
  • کنترل یادگیری ماشین
  • ادراک ماشین
  • تشخیص پژشکی
  • اقتصاد
  • بیمه
  • پردازش زبان طبیعی
  • استنباط زبان طبیعی
  • بهینه سازی و الگوریتم های فرا ابتکاری
  • تبلیغات آنلاین
  • سیستم های توصیه گر
  • حرکت ربات
  • موتورهای جستجو
  • تحلیل احساسات (یا نظر کاوی)
  • مهندسی نرم افزار
  • شناسایی گفتار و دست نوشته
  • تحلیل بازارهای مالی
  • نظارت بر درستی ساحتار
  • الگوشناسی ترکیبی
  • پیش بینی سری های زمانی
  • تحلیل رفتار کاربر
  • ترجمه

در سال 2006 کمپانی فیلم سازی آنلاین نتفلیکس اولین رقابت “جایزه نتفلیکس” را برگزار کرد تا برنامه ای پیدا کند که پیش بینی بهتری از تمایلات کاربر داشته و دقت الگوریتم فعلی توصیه فیلم (Cinematch) خود را لااقل 10% بهبود بخشد. گروهی متشکل از محققان بخش تحقیق و آزمایشگاه AT&T به همراه تیم های Big Chaos و Pragmatic Theory یک مدل چندگانه (ensemble model) ساختند که برنده جایزه 1 میلیون دلاری سال 2009 شد.

اندکی بعد از اهدای جایزه، نتفلیکس متوجه شد که امتیازدهی بینندگان، بهترین شاخص برای الگوی تماشای آن ها نیست (“همه چیز یک توصیه است”) و بنابراین موتو توصیه گر خود را تغییر دادند.

در سال 2010 وال استریت ژورنال مقاله ای راجع به شرکت Rebellion Research و استفاده آن ها از یادگیری ماشین برای پیش بینی بحران مالی نوشت.

در سال 2012، وینود کسلا (Vinod Khosla) یکی از موسسین سان مایکروسیستمز (Sun Microsystems)، پیش بینی کرد که در دو دهه آینده بیش از 80% از فرصت های شغلی پزشکی توسط نرم افزارهای تشخیص پزشکی یادگیری ماشین از بین خواهد رفت.

در سال 2014، گزارش شد که یک الگوریتم یادگیری ماشین در مطالعه تاریخ هنر استفاده شد تا نقاشی های هنرهای زیبا را بررسی کند، و نیز گزارش شد که این الگوریتم ممکن است تاثیرگذاری هایی را میان هنرمندان نشان داده باشد که قبلا شناخته شده نبوده است.

ارزیابی مدل

مدل های یادگیری ماشین طبقه بندی را می توان با تکنیک های تخمین دقت مثل روش هولد اوت (holdout) که داده ها را به یک مجموعه آموزش و یک مجموعه آزمایش تقسیم می کند (معمولا دو-سوم داده ها  در مجموعه آموزش و یک-سوم را در مجموعه آزمایش قرار می گیرند) و عملکرد مدل تحت آموزش را روی مجموعه آزمایش ارزیابی می کند، راستی آزمایی نمود. در مقایسه، روش تصدیق متقاطع N تایی  (N-fold cross validation) بطور تصادفی داده ها را به k زیرمجموعه تقسیم می کند که k-1 مورد از داده ها برای آموزش مدل استفاده می شود و   k-اُمین مورد برای آزمایش توانایی پیشگویی مدل استفاده می شود. علاوه بر روش های holdout و تصدیق متقاطع، راه اندازی خودکار (booststrap) که n مورد را، با جایگذاری، از مجموعه داده ها نمونه گیری می کند، می تواند برای ارزیابی دقیق مدل استفاه شود.

محققان علاوه بر دقت کلی، اغلب حساسیت و ویژگی را، که به ترتیب به معنای نسبت مثبت واقعی (TPR) و نسبت منفی واقعی (TNP) هستند، گزارش می کنند. بطور مشابه، محققین برخی اوقات نسبت مثبت کاذب  (FPR) و نسبت منفی کاذب (FNR) را نیز گزارش می کنند. با این حال، این ها نسبت هایی هستند که صورت و مخرج خود را نشان نمی دهند. مشخصه عملگری کل (TOC) روشی موثر جهت بیان توانایی تشخیص یک مدل است. TOC صورت و مخرج نسبت های فوق را نمایش می دهد، لذا اطلاعات بیشتری از منحنی های معمول مشخصه عملیاتی سیستم (ROC) و مساحت زیر این منحنی (AUC) بدست می دهد.

مسائل اخلاقی

یادگیری ماشین پرسش های اخلاقی متعددی را بوجود می آورد. سیستم های آموزش دیده روی مجموعه های داده های اُریب یا بایاس (bias) ، ممکن است این اریبی ها را هنگام استفاده نمایش دهند، لذا تبعیضات فرهنگی را دیجیتالی کنند. بنابراین جمع آوری مسئولانه داده ها بخش مهمی از یادگیری ماشین است.

چون زبان دارای اریبی است، ماشین هایی که روی پیکره های زبان  (language coropa) آموزش داده شده اند لزوماً اریبی را نیز یاد می گیرند.

نرم افزارها

برخی بسته های نرم افزاری که الگوریتم های یادگیری ماشین متنوعی دارند به شرح زیر هستند:

نرم فزار های رایگان و متن باز:

CNTK
Deeplearning4j
dlib
ELKI
GNU Octave
H2O
Mahout
Mallet
MEPX
mlpy
MLPACK
MOA (Massive Online Analysis)
MXNet

ND4J: ND arrays for Java

NuPIC
OpenAI Gym
OpenAI Universe
OpenNN
Orange
R
scikit-learn
Shogun
TensorFlow
Torch
Yooreeka
Weka

نرم افزارهای مالکیتی با ویرایش های رایگان و متن باز:

KNIME
RapidMiner

نرم افزار های مالکیتی:

Amazon Machine Learning
Angoss KnowledgeSTUDIO
Ayasdi
IBM Data Science Experience
Google Prediction API
IBM SPSS Modeler
KXEN Modeler
LIONsolver
Mathematica
MATLAB

Microsoft Azure Machine Learning

Neural Designer
NeuroSolutions
Oracle Data Mining
RCASE
SAP Leonardo
SAS Enterprise Miner
SequenceL
Skymind
Splunk
STATISTICA Data Miner

ژورنال ها

Journal of Machine Learning Research
Machine Learning
Neural Computation
منبع

یادگیری ماشین قسمت 1
یادگیری ماشین قسمت 2
یادگیری ماشین قسمت 3