<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های باران سیل سپور</title>
        <link>https://virgool.io/feed/@seilsepour</link>
        <description>سلام. من باران هستم دانشجوی دکترای رشته مهندسی نرم افزار و بسیار علاقمند به مباحث علم داده، یادگیری ماشین، یادگیری عمیق و پردازش زبان طبیعی</description>
        <language>fa</language>
        <pubDate>2026-04-14 22:19:24</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/136298/avatar/iFvaT2.jpg?height=120&amp;width=120</url>
            <title>باران سیل سپور</title>
            <link>https://virgool.io/@seilsepour</link>
        </image>

                    <item>
                <title>چگونه بدون شماره مجازی با CHATGPT گفتگو کنیم؟</title>
                <link>https://virgool.io/@seilsepour/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A8%D8%AF%D9%88%D9%86-%D8%B4%D9%85%D8%A7%D8%B1%D9%87-%D9%85%D8%AC%D8%A7%D8%B2%DB%8C-%D8%A8%D8%A7-chatgpt-%DA%AF%D9%81%D8%AA%DA%AF%D9%88-%DA%A9%D9%86%DB%8C%D9%85-kmlkuv46lfle</link>
                <description>با سلام و روزبخیرهمونطور که میدونید ربات CHATGPT مدتیه که توسط شرکت OpenAI معرفی شده ولی چون به شماره تلفن کشورهای خارجی نیاز داره ما ایرانی ها نمیتونیم باهاش چت کنیم.  خب میتونیم برای استفاده از CHATGPT این کارها رو انجام بدیم:1) میتونیم از سایت نامبرلند یه شماره مجازی برای یه مدت کوتاه با قیمت مناسب بخریم و تو سایت OpenAI ثبت نام کنیم.2) میتونیم از طریق تلگرام بات @chatgpt_persia_bot با CHATGPT گفتگو کنیم.3)میتونیم تو سایت POE.COM  از طریق ایمیل ثبت نام کنیم  و از چت بات های دیگه مثل GPT4 هم استفاده کنیم.من خودم دو راه آخر را استفاده می کنم.</description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Mon, 24 Apr 2023 11:42:02 +0330</pubDate>
            </item>
                    <item>
                <title>معرفی کتاب قدرت انضباط شخصی</title>
                <link>https://virgool.io/@seilsepour/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8-%D9%82%D8%AF%D8%B1%D8%AA-%D8%A7%D9%86%D8%B8%D8%A8%D8%A7%D8%B7-%D8%B4%D8%AE%D8%B5%DB%8C-oz20kehfrxn4</link>
                <description>با سلاممن به تازگی اشتراک یک ماهه بی نهایت از طاقچه خریدم (البته راستش پولی ندادم از جایزه اسنپ استفاده کردم) و این کتاب را گوش دادم. به نظرم خیلی مفیده. ارزش وقت گذاشتن داره.خرید کتاب قدرت انضباط شخصی</description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Sun, 23 Apr 2023 15:39:31 +0330</pubDate>
            </item>
                    <item>
                <title>انواع داده لیست، تاپل، دیکشنری و ست در پایتون</title>
                <link>https://virgool.io/@seilsepour/%D8%A7%D9%86%D9%88%D8%A7%D8%B9-%D8%AF%D8%A7%D8%AF%D9%87-%D9%84%DB%8C%D8%B3%D8%AA-%D8%AA%D8%A7%D9%BE%D9%84-%D8%AF%DB%8C%DA%A9%D8%B4%D9%86%D8%B1%DB%8C-%D9%88-%D8%B3%D8%AA-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-xgnmomybuhwk</link>
                <description>در زبان برنامه‌نویسی پایتون، لیست، تاپل، دیکشنری و ست، سه نوع ساختار داده مهم هستند که هرکدام ویژگی‌ها و کاربردهای خاص خود را دارند.لیست (List): لیست یک ساختار داده ترتیب‌دار و قابل تغییر در پایتون است که اجازه می‌دهد به داده‌ها با استفاده از شاخص (index) دسترسی داشته باشیم. لیست‌ها می‌توانند شامل همه نوع داده‌ها از جمله اعداد، رشته‌ها، لیست‌های دیگر و حتی دیکشنری‌ها باشند. برخلاف تاپل (Tuple)، لیست‌ها توسط کاربر تغییر داده می‌شوند. برخی از متدهای مهم لیست شامل append، insert، remove، pop و sort هستند.به عنوان مثال، فرض کنید می‌خواهید لیستی از اعداد صحیح را ایجاد کنید و سپس عناصر آن را با یک حلقه پرینت کنید. در اینجا می‌توانید از دستورات زیر استفاده کنید:numbers = [1, 2, 3, 4, 5]for num in numbers:   print(num)تاپل (Tuple): تاپل شامل یک مجموعه از عناصر ترتیبی است و می تواند شامل انواع مختلفی از داده ها باشد. تاپل شبیه به لیست است بر خلاف لیست، تاپل تغییر پذیر نیست، یعنی بعد از ایجاد یک تاپل، امکان تغییر مقادیر درون آن وجود ندارد. البته برای تغییر تاپل میتونیم اول اونو به لیست تبدیل کنیم و تغییر بدیم.تاپل با استفاده از پرانتز () تعریف می‌شود و عناصر آن با کاما از هم جدا می‌شوند. به عنوان مثال:my_tuple = (1, 2, 3, 4, 5)names_tuple = (&quot;Alice&quot;, &quot;Bob&quot;, &quot;Charlie&quot;)mixed_tuple = (1, &quot;Bob&quot;, 3.14, &quot;Alice&quot;)print(my_tuple[2])  # Output 3mixed_tuple[1] = &quot;Charlie&quot;  #Error: &#x27;tuple&#x27; object does not support item assignmentدیکشنری (Dictionary): دیکشنری داده‌ها را به صورت جفت‌های کلید و مقدار ذخیره می‌کند. در دیکشنری، کلیدها (Keys) باید یکتا باشند و می‌توانند شامل تمامی انواع داده قابل تغییر مانند رشته، عدد و حتی لیست باشند. با استفاده از دیکشنری‌ها، می‌توانید به سرعت به مقادیر مربوط به یک کلید دسترسی پیدا کنید. برخی از متدهای مهم دیکشنری شامل keys، values، items و get هستند.به عنوان مثال دیگر، فرض کنید می‌خواهید یک دیکشنری از نام و سن شخص‌ها را ایجاد کنید و سپس با استفاده از یک حلقه، نام و سن هر شخص را چاپ کنید. در اینجا می‌توانید از دستورات زیر استفاده کنیدpeople = {&quot;John&quot;: 25, &quot;Emily&quot;: 30, &quot;David&quot;: 35}for name, age in people.items():     print(f&quot;{name} is {age} years old.&quot;)ست (Set): ست یک ساختار داده بدون ترتیب در پایتون است که هر عضو در آن باید یکتا باشد. ست‌ها به عنوان یک مجموعه از عناصر استفاده می‌شوند و می‌توانند شامل تمامی نوع داده‌های قابل تغییر باشند. برخلاف لیست و دیکشنری، ست‌ها قابل تغییر نیستند و عملیات حذف و اضافه عناصر به صورت خاصی انجام می‌شوند. برخی از متدهای مهم ست شامل add، remove، union و intersection هستند.به عنوان مثال سوم، فرض کنید می‌خواهید یک ست از رشته‌ها را ایجاد کنید و سپس با استفاده از دستورات مربوط به ست، تعداد رشته‌های مختلف را پیدا کنید. در اینجا می‌توانید از دستورات زیر استفاده کنید:strings = {&quot;apple&quot;, &quot;banana&quot;, &quot;cherry&quot;, &quot;apple&quot;, &quot;cherry&quot;, &quot;orange&quot;}      print(len(strings))  # خروجی: 4</description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Sun, 23 Apr 2023 15:31:40 +0330</pubDate>
            </item>
                    <item>
                <title>قابل توجه دوستانی که از udemy  استفاده می کنن</title>
                <link>https://virgool.io/@seilsepour/%D9%82%D8%A7%D8%A8%D9%84-%D8%AA%D9%88%D8%AC%D9%87-%D8%AF%D9%88%D8%B3%D8%AA%D8%A7%D9%86%DB%8C-%DA%A9%D9%87-%D8%A7%D8%B2-udemy-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D9%85%DB%8C-%DA%A9%D9%86%D9%86-e7usif4evjek</link>
                <description>با سلام و روزبخیردوستان چند روز پیش که میخواستم وارد سایت یودمی بشم این پیام رو دریافت کردم و به پشتیبانی ایمیل زدم. اونها هم خیلی محترمانه پاسخ دادند:خلاصه دقت کنید به هیچ وجه بدون فیلتر شکن وارد اکانت یودمی نشید. چند نفر دیگه هم با همین مشکل مواجه شدن.</description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Sun, 23 Apr 2023 14:00:10 +0330</pubDate>
            </item>
                    <item>
                <title>مقدمه ای بر انتخاب ویژگی</title>
                <link>https://virgool.io/@seilsepour/%D9%85%D9%82%D8%AF%D9%85%D9%87-%D8%A7%DB%8C-%D8%A8%D8%B1-%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8-%D9%88%DB%8C%DA%98%DA%AF%DB%8C-wi0f6fnlhdvs</link>
                <description>برگرفته از مقاله https://machinelearningmastery.com/an-introduction-to-feature-selection/نام دیگر Feature Selection یا انتخاب ویژگی، انتخاب متغیر یا variable selection یا attribute selection است.انتخاب ویژگی در واقع فرایند انتخاب زیرمجموعه ای از ویژگی های مرتبط  برای ساخت مدل است.تفاوت انتخاب ویژگی و کاهش بعدانتخاب ویژگی با Dimensionality reduction یا کاهش بعد تفاوت دارد. هر دو روش به دنبال کاهش تعداد ویژگی های دیتاست هستند ولی کاهش بعد این کار را با ترکیب ویژگی ها انجام می دهد در حالیکه انتخاب ویژگی این کار را با گنجاندن و یا حذف ویژگیهای حاضر این کار را انجام می دهد و تغییری در داده ها ایجاد نمی نماید.روش های Principal Component Analysis و Singular Value Decomposition و Sammon&#x27;s Mapping نمونه هایی از روش های کاهش بعد هستند.انتخاب ویژگی چگونه به ما کمک می کند؟روش های انتخاب ویژگی به ما کمک می کنند تا یک مدل پیش بینی صحیح با کمترین داده  و بهترین دقت بسازیم. روش های انتخاب ویژگی  به ما کمک می کنند تا ویژگی های غیر ضروی، غیرمرتبط و اضافی را که تاثیری در دقت مدل پیش بینی ندارند و حتی ممکن است باعث کاهش دقت مدل شوند را شناسایی و حذف نماییم.ویژگی های کمتر همیشه برای ما مطلوب تر است زیرا پیچیدگی مدل را کاهش می دهد و مدل ساده تر قابل فهم تر و قایل توصیف تر است.انتخاب ویژگی سه هدف مهم دارد: بهبود کارایی پیش بینی کننده ها، فراهم کردن پیش بینی کننده های سریع تر و مقرون به صرفه تر و فراهم کردن درک بهتری از فرایند تولید داده.الگوریتم های انتخاب ویژگیسه دسته الگوریتم های انتخاب ویژگی عبارتند از: روش های فیلتری (Filter methods)، روش های رپر (Wrapper methods) و روش های تعبیه شده (Embeded methods)Filter Methodsاین روش ها از یک معیار آماری برای تخصیص یک score به هر ویژگی استفاده می نمایند. ویژگی ها با این score امتیازدهی می شوند و برای نگه داشتن و یا حذف از دیتاست انتخاب می شوند. این روش ها غالبا تک متغیره (univariate) هستند و هرویژگی را به صورت مستقل و یا با توجه به متغیرهای وابسته دیگر در نظر می گیرند.تعدادی از روش های این دسته عبارتند از Chi squared test، information gain و correlation coefficient scores.Wrapper Methodsاین روش ها مساله انتخاب ویژگی را به عنوان یک مساله جستجو در نظر می گیرند. در این روش ترکیب های مختلفی آماده می شوند، مورد ارزیابی قرار می گیرند و با ترکیب های دیگر مقایسه می شوند. یک مدل پیش بینی برای ارزیابی ترکیبی از ویژگی ها و تخصیص یک score بر پایه دقت به کار می رود.فرایند جستجو ممکنه است بر مبنای یک متدولوژی باشد مانند جستجوی best-first باشد، ممکن است تصادفی باشد مانند الگوریتم random hill-climbing و یا ممکن است heuristic باشد مانند گذرهای forward و backward برای اضافه و یا حذف کردن ویژگی ها.Embeded Methodsاین روش ها یاد می گیرند که کدام ویژگی ها بهتر در دقت مدل سهیم می شوند، در حالیکه مدل در حال ایجاد است. رایج ترین متدهای این گروه Regularization ها هستند.روش های Regularization ، که به آنها روش های Penalization نیز گفته می شود، محدودیت های اضافه ای را برای بهینه سازی یک الگوریتم پیش بینی (مانند یک الگوریتم regression) معرفی می نمایند که مدل را به سمت پیچیدگی کمتر (ضرایب کمتر) سوق می دهند.مثال هایی از الگوریتم های regularization عبارتند از LASSO، Elastic Net و Ridge Regression.نکته: توجه داشته باشید که انتخاب ویژگی یک گام کلیدی در فرایند یادگیری ماشین کاربردی مانند انتخاب مدل است و نمی توان آن را فراموش کرد. انتخاب ویژگی باید بر روی دیتاستی یخ غیر از دیتاست آموزشی انجام شود در غیر اینصورت ممکنه است باعث overfitting شود.منبعhttps://machinelearningmastery.com/an-introduction-to-feature-selection/</description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Fri, 26 Feb 2021 12:33:47 +0330</pubDate>
            </item>
                    <item>
                <title>چگونه از سایت کورسرا مدرک رایگان بگیریم؟</title>
                <link>https://virgool.io/@seilsepour/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A7%D8%B2-%D8%B3%D8%A7%DB%8C%D8%AA-%DA%A9%D9%88%D8%B1%D8%B3%D8%B1%D8%A7-%D9%85%D8%AF%D8%B1%DA%A9-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-%D8%A8%DA%AF%DB%8C%D8%B1%DB%8C%D9%85-ctnodrlypqyk</link>
                <description>سلام دوستاناین روزها خیلی برام پیام میاد که آیا از سایت کورسرا هم می تونیم مدرک رایگان بگیریم؟؟؟بله میتونیم. من خودم چند تا درس (که البته رایگان نیستند) را در سایت کورسرا کاملا رایگان گذروندم و گواهینامه دریافت کردم.یکی از دوستان به اسم آقای امین طاهری در این پست روش این کار را توضیح میدن.منبعامین طاهریhttps://virgool.io/@amintaheri90/how-to-apply-for-coursera-g8hiqw59eiod</description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Sun, 22 Nov 2020 15:36:27 +0330</pubDate>
            </item>
                    <item>
                <title>چطور می توانیم از گراف ها به عنوان ورودی شبکه یادگیری عمیق استفاده کنیم؟</title>
                <link>https://virgool.io/@seilsepour/%DA%86%D8%B7%D9%88%D8%B1-%D9%85%DB%8C-%D8%AA%D9%88%D8%A7%D9%86%DB%8C%D9%85-%D8%A7%D8%B2-%DA%AF%D8%B1%D8%A7%D9%81-%D9%87%D8%A7-%D8%A8%D9%87-%D8%B9%D9%86%D9%88%D8%A7%D9%86-%D9%88%D8%B1%D9%88%D8%AF%DB%8C-%D8%B4%D8%A8%DA%A9%D9%87-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D8%B9%D9%85%DB%8C%D9%82-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%DA%A9%D9%86%DB%8C%D9%85-deuynhj2tmdd</link>
                <description>در این پست خیلی خلاصه در مورد روش های جاسازی یا Embedding و روش Node2Vec صحبت می کنم.نکته: این پست به مرور زمان تکمیل خواهد شد.روش های جاسازی یا Embedding method هاروش های جاسازی واژه یا Embedding method ها به مجموعه ای از روش ها برای تبدیل انواع مختلفی از ورودی ها مثلا متن یا تصاویر به ورودی های قابل درک برای شبکه های عصبی گفته میشه. به زبان ساده مجموعه ای از روش ها که ورودی های مورد نظر را به بردارهای ویژگی یا feature vector ها تبدیل می کنن.چرا باید از embedding method ها استفاده کنیم؟چون شبکه های یادگیری عمیق فقط آرایه های تک بعدی یا به اصطلاح feature vector ها را به عنوان ورودی قبول می کنن. بنابراین همه ورودی ها قبل از تحویل به شبکه عصبی باید به feature vector تبدیل بشن. feature vector ها آرایه های تک بعدی از ویژگی ها هستند. به عنوان مثال در پروژه های تحلیل احساس که نیاز داریم دیتاستی از متن های مختلف را برای آموزش به شبکه بدهیم، ناگزیر هستیم که تک تک لغات موجود در پیکره را به یک Feature vector تبدیل کنیم. در پردازش متن روش های مختلفی به نام word embedding یا جاسازی واژه مانند word2vec، glove، fasttext، bert و ELMO برای ساخت بردارهای ویژگی از متن ها ساخته شده. ظهور این روش ها انقلابی بزرگ در پردازش متن ایجاد کرد.روش Node2vec چیست؟خب حالا اگر داده های ما به صورت گراف باشن باید چکار کنیم؟؟؟؟ چطور می تونیم داده های گرافی را به شبکه های عصبی feed کنیم؟؟؟ همونطور که از قبل می دونیم گراف ها مجموعه ای از node یا vertex ها هستند که با edge یا یال های مختلفی به هم وصل شدند. هر یال ممکنه دارای جهت و وزن باشه.در سال 2016 دوتا از دانشجوهای دکترای دانشگاه استنفورد روشی برای تبدیل داده های گرافی به feature vector ارائه دادند. در واقع Node2vec بک روش embedding برای تبدیل داده های گرافی به feature vector های قابل درک بوسیله شبکه یادیری عمیق هست.ایده اصلی Node2vecایده اصلی Node2vec از اونجا میاد که هر جمله در واقع یک گراف ساده جهت داره که هر کلمه در واقع یک Node گراف هست و توالی کلمات در جمله یال ها را می سازن. به عنوان مثال جمله &quot;حال من خوب هست&quot; را میشه به صورت  گراف ساده جهت دار زیر نشون داد.هر جمله در واقع یک گرافه جهت داره در نتیجه اگر ما بتونیم هر گراف را به جملات تبدیل کنیم، می تونیم از روش های word embedding برای تبدیل جملات حاصل از گراف ها به بردارهای ویژگی استفاده کنیم.ایده اصلی Node2vecهمانطور که در شکل بالا مشخصه، Node2vec یک گراف را به عنوان ورودی دریافت و پیمایش می کنه و روابط بین node ها را استخراج می کنه. این روابط در واقع مجموعه ای از جمله ها را می سازند.در مرحله بعد از روش word2vec  بر مبنای skip-gram (همونطور که از قبل می دونیم word2vec یک روش جاسازی واژه هست که بر پایه Continuous bag of word و یا skip-gram کار می کنه)برای تبدیل این جملات به feature vector ها استفاده می کنه و این feature vector ها رو میشه به عنوان ورودی به شبکه عصبی داد.منبع https://towardsdatascience.com/node2vec-embeddings-for-graph-data-32a866340fef </description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Fri, 11 Sep 2020 13:28:13 +0430</pubDate>
            </item>
                    <item>
                <title>معرفی کتاب</title>
                <link>https://virgool.io/@seilsepour/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DA%A9%D8%AA%D8%A7%D8%A8-kr7kf4pj1von</link>
                <description>با سلامتازگی ها فکر می کنم یکی از مسئولیت های اجتماعی من این هست که وقتی مطلب مفیدی میخونم به دیگران هم معرفی کنم. به تازگی دو تا کتاب جدید مطالعه کردم که خیلی عالیه. من کلا به کتاب هایی با موضوعات رشد و توسعه فردی خیلی علاقه دارم. این دو کتاب هم در همین دسته قرار میگیرند.وقتی خوندن این دو کتاب را تموم کردم به خودم گفتم کاش زودتر این کتاب ها را پیدا کرده بودم. میتونم با اطمینان بگم بعد از کتاب &quot;اثر مرکب&quot; شاید این دو کتاب بهترین کتاب هایی بودن حالم را خوب کردند.کتاب اول)چگونه خود با عظمتی بسازیم؟نکته جالب در مورد این کتاب این هست که بعد از فوت دبی فورد به صورت معجزه آسایی این کتاب چاپ میشه. من نمیخوام توضیح بدم که این اتفاق چجوری میفته تا خودتون برید و بخونید. تاثیر این کتاب روی من این بود که کمتر کنترلگر باشم و بعضی چیزها را به قدرت برتر (خدا)بسپارم و همچنین با خودم مهربان تر باشم. دیگه بیشتر توضیح نمیدم ولی توصیه می کنم حتما بخونید.کتاب دوم)شفای زندگیاین کتاب هم خیلی جالبه، یجوری تاکید بر خویشتن دوستی داره و معتقده که منشاء همه دردهای ما درونی هست و ما وقتی روح خودمون را شفا بدیم همه دردهامون شفا پیدا می کنن.من واقعا از مطالعه این دو کتاب لذت بردم امیدوارم شما هم همین حس را داشته باشید.</description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Mon, 03 Aug 2020 13:29:58 +0430</pubDate>
            </item>
                    <item>
                <title>عقاید با قاعده و مقایسه ای (Regular and Comparative Opinions)</title>
                <link>https://virgool.io/@seilsepour/%D8%B9%D9%82%D8%A7%DB%8C%D8%AF-%D8%A8%D8%A7-%D9%82%D8%A7%D8%B9%D8%AF%D9%87-%D9%88-%D9%85%D9%82%D8%A7%DB%8C%D8%B3%D9%87-%D8%A7%DB%8C-regular-and-comparative-opinions-y9agnf3xolts</link>
                <description>با سلامعقاید و احساسات را می توان از دیدگاه های مختلف در مبحث تحلیل احساس (Sentiment Analysis) یا عقیده کاوی (Opinion Mining) تقسیم بندی کرد. در یکی از این تقسیم بندی ها، یک عقیده را به دو گروه Regular یا Comparative تقسیم می کنند. در این مقاله به توضیح این دو گروه می پردازیم. تقسیم بندی نظراتنظرات Regular یا با قاعدهمن نمیدونم با قاعده ترجمه درستی برای Regular هست یا نه؟؟ ولی منظور از Regular در اینجا نظرات معمولی هستند. به عنوان مثال &quot;گوشی سامسونگ خوب است.&quot; این جمله یک عقیده Regular است. عقاید Regular ممکن است مستقیم(Direct) یا غیرمستقیم(Indirect)باشند.نظرات direct مستقیما نظری را در مورد پدیده یا ویژگی خاصی از آن پدیده بیان می نمایند. به عنوان مثال &quot;کیفیت این تصویر خوب است&quot;.نظرات Indirect یا غیرمستقیم، به صورت غیرمستقیم نظر یا احساسی را در مورد یک پدیده یا جنبه خاصی از آن پدیده بیان می نمایند. به عنوان مثال &quot;پس از تزریق دارو، مفاصل من بدتر شد&quot;. این جمله به صورت غیر مستقیم نظر منفی را در مورد دارو بیان می نماید. به عنوان مثال دیگر &quot;بعد از استفاده از این لپتاپ، چشم های من خیلی بهتره&quot;. این جمله به صورت غیر مستقیم نظر مثبتی را در مورد لپتاپ بیان می کنه.نظرات مقایسه ای یا Comparativeنظرات مقایسه ای شباهت ها یا تفاوت هایی را بین دو یا چند چدیده یا جنبه هایی از آن پدیده ها را بیان می دارند. به عنوان مثال &quot;نوشابه کوکا از پپسی خوش طعم تر است&quot; یا &quot;کوکا بهترین طعم را دارد.&quot;منبعhttps://www.springer.com/gp/book/9783319553924</description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Thu, 16 Jul 2020 17:23:29 +0430</pubDate>
            </item>
                    <item>
                <title>تفاوت Linear Regression و Logistic Regression</title>
                <link>https://virgool.io/@seilsepour/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-linear-regression-%D9%88-logistic-regression-q69uus9qkeva</link>
                <description>تفاوت Linear Regression و Logistic Regressionبا سلامنکته: لطفا قبل از مطالعه این مطلب، مقاله تفاوت Classification و Regression را مطالعه بفرمایید.وقتی یادگیری ماشین را آغاز می کنیم، به اصطلاحاتی بر می خوریم که به نظر مشابه میان ولی در واقع خیلی متفاوتند. دوتا از این اصطلاحلات Linear Regression و Logistic Regression هستند.هر دو این روش ها از مهمترین و معروف ترین الگوریتم های یادگیری ماشین  هستند و در گروه الگوریتم های Supervised یا نظارتی قرار می گیرند. از اینرو هر دو این الگوریتم ها به داده های برچسب دار برای آموزش و سپس Prediction نیاز دارند. از الگوریتم Linear Regression برای حل مسائل Regression و از Logistic Regression برای حل مسائل Classification استفاده می شود. برای درک اختلاف Regression و Classification این مقاله را مطالعه نمایید.الگوریتم Linear Regressionاین روش یکی از ساده ترین روش های یادگیری ماشین است که در گروه الگوریتم های نظارتی قرار میگیرد و برای حل مسائل Regression به کار می رود.این الگوریتم برای پیش بینی متغیر وابسته پیوسته (Continuous dependent variable) با استفاده از متغیرهای مستقل به کار می رود.هدف از این الگوریتم این است تا خطی را بیابد که با حداکثر دقت خروجی متغیر وابسته پیوسته را پیش بینی نماید.اگر فقط از یک متغیر مستقل برای پیش بینی استفاده شود به این الگوریتم Simple Linear Regression و اگر از بیش از یک متغیر مستقل برای پیش بینی استفاده شود به این الگوریتم Multiple Linear Regression گفته می شود.خروجی این الگوریتم  فقط مقادیر پیوسته مانند قیمت، سن، حقوق و ... است. ارتباط بین متغیر مستقل و وابسته در شکل زیر نشان داده شده است.Linear Regressionدر شکل بالا متغیر وابسته محور y است (salary) و متغیر مستقل محور x است (experience). خط Regression را میتوان با معادله زیر نشان داد.معادله Linear Regressionالگوریتم Logistic Regressionالگوریتم Logistic Regression یکی از محبوب ترین الگوریتم های یادگیری ماشین است که در گروه الگوریتم های Supervised یا نظارتی قرار  میگیرد.از این الگوریتم عموما برای حل مسائل classification استفاده می شود ولی میتوان برای حل مسائل Regression نیز از این روش استفاده کرد.از این الگوریتم برای پیش بینی متغیر وابسته categorical با استفاده از متغیرهای مستقل استفاده می شود.از این روش می توان مواقعی که احتمال بین دو کلاس یا category نیاز است استفاده کرد. مانند: آیا امروز باران خواهید بارید یا نه؟ آیا مقدار این متغیر صفر است یا نه؟؟؟خروجی الگوریتم Logistic Regression فقط می تواند 0 یا 1 باشد.روش Logistic Regression برپایه مفهوم Maximum Likelihood Estimation بنا نهاده شده است.در این الگوریتم ما مجموع وزن دار ورودی ها را به یک تابع activation می دهیم و این تابع ورودی ها را به مقادیر صفر یا یک نگاشت می کند. این تابع فعال سازی Sigmoid است و به منحنی آن sigmoid curve یا s-curve گفته می شود. شکل زیر این منحنی را نشان می دهد.Logistic Regressionمعادله Logistic Regression به صورت زیر نوشته می شود.معادله Logistic Regressionتفاوت Logistic Regression و Linear Regression به صورت خلاصهنکته: همونطور که قبلا هم عرض کردم من از خودم مطلبی برای آموزش ندارم بلکه فقط دانشجویی در حال یادگیری از منابع مختلف هستم. منبع این مطلب هم در قسمت منبع ذکر کردم.منبعhttps://www.javatpoint.com/linear-regression-vs-logistic-regression-in-machine-learning</description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Thu, 16 Jul 2020 10:35:55 +0430</pubDate>
            </item>
                    <item>
                <title>تحلیل احساس یا عقیده کاوی</title>
                <link>https://virgool.io/@seilsepour/%D8%AA%D8%AD%D9%84%DB%8C%D9%84-%D8%A7%D8%AD%D8%B3%D8%A7%D8%B3-%DB%8C%D8%A7-%D8%B9%D9%82%DB%8C%D8%AF%D9%87-%DA%A9%D8%A7%D9%88%DB%8C-l03kdowmagzr</link>
                <description>این نوشته با گذشت زمان تکمیل خواهد شد.سلامدر این پست  میخوام کمی با جزییات بیشتر در مورد تحلیل احساس یا Sentiment Analysis بنویسم.تعریف تحلیل احساستحلیل احساس یا Sentiment Analysis یکی از زیرشاخه های پردازش زبان طبیعی یا NLP است که به بررسی نظر یا احساس کاربران در مورد یک رویداد، پدیده، محصول و ... می پردازد. تحلیل احساس در مراجع مختلف با نام های زیر نیز شناخته می شود:Opinion MiningOpinion ExtractionSubjectivity AnalystsSentiment MiningEmotion AnalysisReview Miningنتایج بررسی تحلیل احساس روی نظرات کاربران ممکن است مثبت، منفی و یا بی تفاوت باشد و یا ممکن است به صورت اعداد متوالی نمایش داده شود. تحلیل احساس از دیدگاه یادگیری ماشین یک وظیفه Classification به حساب می آید زیرا نظرات را به دسته های مختلفی مانند مثبت و منفی و خنثی تقسیم می نماید.تعریف نظریک نظر در مبحث تحلیل احساس به صورت یک پنج تایی مانند زیر تعریف می شود.تعریف نظرمنظور از e نام پدیده یا موجودیتی است که میخواهیم عملیات تحلیل احساس را در مورد آن انجام دهیم. به عنوان مثال میخواهیم نظرات کاربران را در مورد گوشی موبایل سامسونگ بررسی نماییم. در اینجا گوشی سامسونگ پدیده مورد نظر است.منظور از a یک ویژگی یا جنبه خاص از پدیده مورد بررسی است. مثلا میخواهیم نظر کاربران را د رمورد کیفیت صدای گوشی سامسونگ بررسی نماییم. در اینجا صدا همان a است.منظور از s همان احساس یا نظر در مورد جنبه ای از پدیده است. h در برگیرنده گوینده نظر و t هم زمانی است که نظر بیان شده است که معمولا h و t در نظر گرفته نمی شوند.تقسیم بندی جملات از دیدگاه تحلیل احساسجملات از دیدگاه تحلیل احساس به دو دسته subjective و objective تقسیم می شوند. جملات objective جملاتی هستند که بیانگر یک fact هستند و در برگیرنده نظر خاصی نیستند. به عنوان مثال جمله &quot;آیفون یک گوشی موبایل هوشمند است.&quot; دارای احساس یا نظر خاصی در مورد گوشی موبایل آیفون نیست.جملات subjective جملاتی هستند که در برگیرنده نظرات و احساسات هستند. به عنوان مثال جمله &quot;آیفون گوشی بسیار خوبی است.&quot; بیانگر نظر مثبت گوینده در مورد گوشی آیفون است. همانطور که در شکل زیر نشان داده شده است جملات subjective ممکن است مثبت، منفی و یا خنثی باشند.جملات از دیدگاه تحلیل احساسدر task های تحلیل احساس معمولا ما با جملاتی سر و کار داریم که subjective هستند و فقط می خواهیم جملات را از دیدگاه مثبت و منفی و ... طبقه بندی نماییم.منبعhttps://www.amazon.com/Sentiment-Analysis-Networks-Federico-Alberto/dp/0128044128</description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Sat, 11 Jul 2020 15:57:59 +0430</pubDate>
            </item>
                    <item>
                <title>یک راهنمای عملی برای پردازش زبان طبیعی</title>
                <link>https://virgool.io/@seilsepour/%DB%8C%DA%A9-%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C-%D8%B9%D9%85%D9%84%DB%8C-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%BE%D8%B1%D8%AF%D8%A7%D8%B2%D8%B4-%D8%B2%D8%A8%D8%A7%D9%86-%D8%B7%D8%A8%DB%8C%D8%B9%DB%8C-daq5cgwzcuko</link>
                <description>این پست با گذشت زمان کامل تر خواهد شد.در این پست میخوام خیلی خلاصه و روان توضیح بدم چه کارهایی برای انجام یک پروژه پردازش زبان طبیعی باید انجام بدیم.پردازش زبان طبیعی یا Natural Language Processing، که شاخه ای از هوش مصنوعی است، عموما در مورد روش ها ، ابزارها و الگوریتم هایی برای پردارش و فهم زبان طبیعی است. NLP اصولا روی طراحی و ساخت برنامه هایی که تعامل بین ماشین ها و انسان ها را میسر می سازند تمرکز می نماید.گام های اصلی در ساخت یک برنامه پردازش زبان طبیعیشکل زیر مراحل مختلف ساخت یک برنامه پردازش زبان طبیعی را نمایش می دهد. ممکن است برنامه ما یک task تحلیل احساس، ترجمه و ... باشد ولی گام های زیر عموما در همه برنامه های NLP وجود دارند.مراحل یک برنامه پردازش زبان طبیعی برنامه های NLP کار خود را با یک پیکره متنی یا به اصطلاح Corpus آغاز می کنند. این corpus ممکن است یکی از دیتاست های معروف در دسترس همگان باشد و یا ممکن است برای اهداف خاصی جمع آوری شده باشد. به عنوان مثال یک corpus ممکن است مجموعه ای از نظرات کاربران در مورد یک محصول شرکت سامسونگ باشد.مرحله پیش پردازش متن یا Text Pre-processing در این مرحله باید داده های اضافی که ارزشی در پردازش ندارند را حدف نماییم. این مرحله شامل موارد زیر است:حدف تگ های HTMLاگرداده های خود را از صفخات وب Crawl کرده باشیم، به احتمال زیاد دارای تگ های HTML است که ارزشی در پردازش زبان ندارند و باید حذف شوند.حدف Accented Charactersمعمولا کاراکترهایی که به زبان دیگری غیر از انگلیسی هستند را قبل از پردازش باید حذف و یا تبدیل نماییم.گسترش مخفف ها یا Contractionsمعمولا در هر زبانی بعضی از کلمات به صورت مخفف نوشته می شوند. مثلا در زبان انگلیسی I can&#x27;t همان I can not است. این کلمات  باید به صورت اولیه و استاندارد خود نوشته شوند.تبدیل جملات به کلماتبه این مرحله tokenization نیز گفته می شود. در این مرحله جملات را به کلمات جداگانه تبدیل می نماییم.حذف کاراکترهای ویژهمعمولا به کاراکترهای غیر الفبایی مانند @ و &amp; کاراکترهای ویژه هستند. معمولا اعداد و کاراکترهای ویژه را قبل از پردازش حذف می نماییم.تبدیل همه حروف به حروف کوچکهمه حروف پیکره را به حروف کوچک تبدیل می نماییم.تصحیح کلمات با املای اشتباه یا کلماتی که به حالت های مختلفی نوشته می شوندبه عنوان مثال ممکن است کلمه cool به صورت cooool و یا kewl نوشته شود که هر دو باید به cool تبدیل شوند.مرحله Stemming و Lemmatzationمنظور از این مرحله این است که کلمات باید به حالت ریشه خود تبدیل شوند. مثلا کلمه Jumping و یا Jumped به Jump تبدیل میشود. البته تفوتی بین stemming و lemmatization وجود داره که بعدا در پست جداگانه ای در موردش توضیح می دم.حدف Stopword هامنظور از stopword ها کلماتی هستند که دارای ارزش معنایی بالایی نیستند و معمولا چندین بار در متن تکرار می شوند. بعنوان مثال and یا a از این کلمات هستند.ارائه متن یا Text Representationمنظور از ارائه متن یافتن روشی است که بتوانبم کلمات را به صورت قابل درک برای کامپیوتر تبدیل نماییم. روش های مختلفی برای این کار وجود دارد. بعضی از این روش ها عبارتند از Bag of words، TF-IDF و یا روش های مختلف word embedding مانند Word2vec، Glove و یا Bert. هر کدام از این روش های word embedding یک پیکره متنی را دریافت  و هر کلمه را به یک بردار عددی و یا Numerical Vector تبدیل می نمایند. مرحله Modelingدر این مرحله باید با توجه به task مورد نظر الگوریتم مناسب یادگیری را انتخاب نماییم. به عنوان مثال اگر یک task تحلیل احساس یا classification داریم می توانیم از الگوریتم های SVM و یا Deep Learning استفاده نماییم و با استفاده از الگوریتم انتخابی یک مدل بسازیم. از این مدل می توانیم برای پیش بینی استفاده نماییم.مرحله Evaluationدر این مرحله با استفاده از معیارهایی مانند Precision و Recall مدل ایجاد شده را ارزیابی می نماییم.منبعhttps://towardsdatascience.com/a-practitioners-guide-to-natural-language-processing-part-i-processing-understanding-text-9f4abfd13e72https://www.kdnuggets.com/2019/01/solve-90-nlp-problems-step-by-step-guide.html</description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Fri, 10 Jul 2020 19:00:46 +0430</pubDate>
            </item>
                    <item>
                <title>معرفی اجمالی الگوریتم SVM یا Support Vector Machine</title>
                <link>https://virgool.io/@seilsepour/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%D8%A7%D8%AC%D9%85%D8%A7%D9%84%DB%8C-%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-svm-%DB%8C%D8%A7-support-vector-machine-rz6ks9vn008t</link>
                <description>توجه: این مقاله با گذشت زمان کامل تر خواهد شد.با سلامدر این پست میخوام خیلی خلاصه و سریع ایده اصلی الگوریتم SVM را که یکی از مهمترین و پرکاربردترین الگوریتم های یادگیری ماشین هست را توضیح بدم و طبق معمول روش من این هست که یه منبع خوب پیدا  و اون رو ترجمه کنم. چون اصولا اعتقاد دارم که در این زمینه ها ما هر چی بلدیم از دیگران هست. پس بهتره امانت دار خوبی باشیم و از منابع خوب استفاده کنیم نه اینکه نظرات دیگران را به زبان خودمون بنویسیم و به اسم خودمون تموم کنیم.لینک منبع در انتهای مقاله موجود است. الگوریتم Support Vector Machine یا SVM یک الکوریتم یادگیری ماشین با ناظر است که هم در کارهای Classification و هم در Regression کاربرد دارد.این الگوریتم به دنبال پیدا کردن یک hyperplane است که به بهترین صورت دیتاست را به دو کلاس تقسیم می نماید. مانند شکل زیر:SVMبردارهای حمایتی یا Support Vector هابردارهای حمایتی، نزدیکترین نقاط داده ای به Hyperplane هستند، نقاطی که اگر از دیتاست حذف شوند محل hyperplane تغییر می یابد. بنابراین این نقاط را می توان به عنوان نقاط مهم و حیاطی دیتاست در نظر گرفت.یک Hyperplane چیست؟به صورت ساده می توان گفت که در یک وظیفه Classification دو بعدی (که فقط دو feature دارد، مانند شکل بالا)، یک hyperplane خطی است که دیتاست را به دو مجموعه مجزا تقسیم می نماید. اگر فضای مساله سه بعدی باشد (سه feature یا ویژگی داشته باشد)، یک hyperplane سطحی دو بعدی است که دیتا ست را به دو مجموعه تقسیم می نماید. به صورت کلی می توان گفت که ابعاد یک hyperplane همیشه یک واحد کمتر از تعداد ویژگی هاست.چطور hyperplane درست را بیابیم؟یا به زبان خلاصه چگونه یک دیتاست را به دو مجموعه مجزا تقسیم نماییم؟  فاصله بین  hyperplane و نزدیکترین نقاط داده ای از هر مجموعه ای margin نامیده می شود. هدف  svm این است که hyperplane با بیشترین margin ممکن بین hyperplane و هر نقطه داده ای دیتاست آموزشی را بیابد. شکل زیر margin را نمایش می دهد:marginزمانیکه hyperplane واضحی وجود ندارد؟معمولا دیتاست ها به سادگی دیتاست بالا نیستند و نمی توان به سادگی آن ها را به دو مجموعه مجزا تقسیم کرد. مانند شکل زیر:زمانیکه hyperplane شفافی وجود ندارد؟در حالاتی مانند شکل بالا لازم است تا از فضای دو بعدی فراتر رویم. تصور کنید که نقاط بالا روی صفحه ای قرار دارند و ناگهان این صفحه بالا برده می شود. در این صورت می توان از یک صفحه دو بعدی برای جدا کردن نقاط بهره جست. به این کار Kerneling گفته می شود. مانند شکل زیر:Kernelingمزیت هادقت بالایی دارد.روی دیتاست های کوچک تمیز به خوبی کار می کند.معایببرای دیتاست های بزرگ مناسب نیست زیرا زمان آموزش الگوریتم بالاست.برای دیتاست های نویزی با همپوشانی کلاس ها کارایی خوبی ندارد.منبعhttps://www.kdnuggets.com/2016/07/support-vector-machines-simple-explanation.html&lt;br/&gt;</description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Thu, 09 Jul 2020 18:52:02 +0430</pubDate>
            </item>
                    <item>
                <title>معرفی یه سایت آموزشی عالی</title>
                <link>https://virgool.io/@seilsepour/%D9%85%D8%B9%D8%B1%D9%81%DB%8C-%DB%8C%D9%87-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DB%8C-%D8%B9%D8%A7%D9%84%DB%8C-prd5hytuih0p</link>
                <description>دیروز یه سایت عالی پیدا کردم که خیلی ساده و ابتدایی مطالب مفیدی را در زمینه یادگیری ماشین و داده کاوی آموزش میده.https://chistio.ir/در قسمت دوره های رایگان میتونید لیست خیلی جذابی از آموزش های رایگان ببینید و استفاده کنید.د</description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Sun, 05 Jul 2020 19:38:42 +0430</pubDate>
            </item>
                    <item>
                <title>چگونه با google colab کار کنیم؟</title>
                <link>https://virgool.io/@seilsepour/%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A8%D8%A7-google-colab-%DA%A9%D8%A7%D8%B1-%DA%A9%D9%86%DB%8C%D9%85-mihfp5n8mdta</link>
                <description>توجه: این پست به مرور زمان تغییر خواهد کرد.با سلامدر این پست میخوام خیلی خلاصه و مفید در مورد شروع کار با google colab صحبت کنم.هدف: آموزش شروع کار با google colabآموزش ایجاد یک شبکه یادگیری عمیق ساده با kerasگوگل کلب یا google colab یه سرویس رایگان ابری هست که توسط گوگل در اختیار علاقمندان به برنامه نویسی قرار داده شده تا بتونن رایگان از GPU گوگل برای اجرای برنامه های هوش مصنوعی استفاده کنن.با گوگل کلب می تونیم:مهارت های برنامه نویسی خودمون (فعلا فقط زبان پایتون) را افزایش بدیم.برنامه های یادگیری عمیق را با استفاده از کتابخانه های محبوبی مانند keras، TensorFlow، PyTorch و OpenCV توسعه دهیم.شروع کار با گوگل کلباز آنجاییکه گوگل کلب فایل ها را در گوگل درایو ذخیره می کنه، ابتدا وارد گوگل درایو می شیم و نام کاربری و کلمه عبور جیمیل خود را وارد می نماییم. بر روی گزینه New کلیک می نماییم و یک folder به نام app برای فایل های گوگل کلب ایجاد می نماییم.ایجاد پوشه جدید در گوگل درایودر این مرحله به پوشه app که همین الان ایجاد کردیم میریم، روی صفحه کلیک راست می کنیم و روی گزینه colaboratory یا google colaboratory کلیک می کنیم. توجه کنید اگر شما گزینه colaboratory را در منو نمی بینید، روی Connect more app کلیک کنید و از صفحه جدیدی که باز میشه colaboratory را انتخاب و در صفحه جدیدی که باز میشه روی install کلیک کنید. با این کار کلب برای شما فعال میشه و اگر یک بار دیگه رو صفحه کلیک راست کنید می تونید گزینه colaboratory را ببینید.ایجاد اولین فایل در گوگل کلبحالا یک فایل در Notebook گوگل با پشوند ipynb برای شما ایجاد میشه. حالا میتونید کدنویسی به زبان پایتون رو شروع کنید.اولین Notebookبه صورت پیشفرض اسم notebook ایجاد شده Untitled0.ipynb هست، میتونید خیلی راحت روی اسم فایل کلیک کنید و اسم مورد علاقه خودتون را تایپ کنید.انتخاب GPUحالا از منوی Runtime گزینه Change runtime را انتخاب کنید و در پنجره ای که باز میشه در قسمت Hardware accelerator گزینه GPU را انتخاب  و save کنید.انتخاب GPUاگر به گوشه بالای سمت راست notebook نگاه کنیم یه گزینه connect وجود داره. این گزینه نشون میده که ما فعلا به GPU گوگل وصل نیستیم چون هنوز برنامه ای اجرا نکردیم. بعد از اجرای اولین برنامه حالت این گزینه تغییر می کنه.هنوز Connect نیستیمنوشتن اولین برنامهگوگل کلب خودش به صورت خودکار یک سلول برای ما ایجاد کرده که می تونیم اولین دستورات پایتون خودمون را بنویسیم و اجرا کنیم. مثلا من دستور print زیر را نوشتم و روی دکمه اجرای مشکی رنگ کنار سلول کلیک کردم  (می شه برای اجرای یک سلول از کلید Shift+Enter هم استفاده کرد) تا دستورم اجرا بشه.اجرای اولین دستوربعد از اجرای اولین دستور، اون گزینه Connect بالای سمت راست صفحه به Connected تغییر می کنه. این یعنی ما الان به GPU گوگل وصل هستیم.در هر سلول notebook میتونیم یک یا چند خط دستور پایتون بنویسیم.اضافه کردن سلول جدیدبرای ایجاد سلول جدید کافیه روی Code کلیک کنید یا دکمه های Ctrl+M+B را فشار بدید.اجرای یک سلول برای اجرای هر سلول باید کلید های shift+enter را فشار بدیم یا روی دکمه اجرای مشکی رنگ کنار سلول کلیک کنیم تا اون سلول اجرا بشه. پس من دیگه این نکته را تکرار نمی کنم.نوشتن یک classifier با keras برای دسته بندی کردن تصاویراولی این نکته را بگم که برای نوشتن برنامه های یادگیری عمیق می تونیم از کتابخانه های آماده پایتون مثل tensorflow ، keras یا pytorch استفاده کنیم. من با pytorch  کار نکردم و نمی خوام در موردش صحبت کنم. اما Tensorflow شاید مهمترین کتابخانه برای نوشته برناه های یادگیری عمیق باشه که توسط گوگل ارائه شده. چون کارکردن با tensorflow کمی سخته، برنامه نویس ها یک کتابخانه جدید به نام keras نوشتند که درواقع یک wrapper روی tensorflow هست و خیلی ساده تره. کتابخانه keras خودش چند تا دیتاست مختلف داره که معمولا برای آموزش مورد استفاده قرار میگیرن. یکی از این دیتاست ها fashion_mnist هست که شامل تصاویر لباس های مختلف با label هست. در این مثال میخواهیم یک classifier بنویسیم که با این دیتاست آموزش ببینه و وقتی یه تصویر جدید را بهش بدیم بتونه بگه این تصویر چی هست.معرفی کتابخانه های مختلفخب معمولا در اولین سلول برنامه باید کتابخانه های مورد نیاز خودمون را با دستور import به برنامه وارد کنیم. دستورات زیر را در اولین سلول می نویسیم و کلید shift+enter را فشار میدیم.وارد کردن کتابخونه های مورد نیازدانلود دیتاستحالا دیتاست را با دو دستور زیر دانلود می کنیم و به دو دسته train و test تقسیم می کنیم. دانلود دیتاستپیش پردازش دیتاستدیتاست fashion_mnist تصاویر را به ده دسته گروهبندی می کنه. اسامی این دسته ها را در آرایه زیر ذخیره می کنیم.کلاس هاقبل از اینکه داده ها را به شبکه عصبی بدیم باید داده ها پیش پردازش بشن. در حال حاضر مقادیر پیکسل ها بین 0 تا 255 هست. این نکته را می تونیم از کد زیر متوجه بشیم.اولین تصویر دیتاست قبل از پیش پردازشما میخواهیم تصاویر ما scale کوچکتری داشته باشن مثلا مقدار هر پیکسل بین 0 تا1 باشه. بخواطر همین در هر دو مجموعه داده های آموزشی و تستی مقدار پیکسل ها را به 255 تقسیم می کنیم.Scalingبرای اینکه مطمین بشیم که scaling به درستی انجام شده، کد زیر را اجرا می کنیم و 25 تصویر اول را می بینیم.25 تصویر اول پس از پیش پردازشساخت مدلخب در این مرحله لایه های شبکه عصبی مون را تعریف می کنیم و مدل را می سازیم. از آنجاییکه هدف از این مقاله آموزش شبکه های عصبی نیست، من از ساده ترین شبکه ممکن استفاده می کنم.مدلکامپایل مدلمنظور از کامپایل کردن مدل این هست که باید تابع optimizer و loss و metric را مثل زیر مشخص کنیم.کامپایلآموزش مدلبرای آموزش مدل، تابع fit را فراخوانی می کنیم و داده های آموزشی را به شبکه می دیم. من اینجا از 10 epoch استفاده کردم. اطلاعات هر epoch بعد از اجرای سلول در خروجی نوشته میشه.آموزش مدلارزیابی مدلبرای ارزیابی مدل از دستور زیر استفاده می کنیم. همونطور که می بینید دقت مدل 0.88 هست.ارزیابی مدلپیش بینی با استفاده از مدلکد زیر برای نمایش تصاویر و پیش بینی ها استفاده میشه. ین کد را بنویسید و اجرا کنید.نمایش تصاویرکد زیر نشون میده که با احتمال دقت 0.99 تصویر کفش را برای ما پیش بینی کرده.پیش بینیذخیره یا دانلود notebookاز منوی File با انتخاب گزینه های save و یا download می تونیم فایل notebook ایجاد شده را ذخیره یا دانلود کنیم.منابع https://www.tensorflow.org/tutorials/keras/classification  https://towardsdatascience.com/getting-started-with-google-colab-f2fff97f594c </description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Wed, 17 Jun 2020 17:00:23 +0430</pubDate>
            </item>
                    <item>
                <title>کتاب بزن به هدف</title>
                <link>https://virgool.io/@seilsepour/%DA%A9%D8%AA%D8%A7%D8%A8-%D8%A8%D8%B2%D9%86-%D8%A8%D9%87-%D9%87%D8%AF%D9%81-c52po2ccn7nx</link>
                <description>سلامتصمیم گرفتم بعضی وقت ها اینجا کتاب هایی که به نظرم مفید هستند را معرفی کنم. خب البته نظرات متفاوته و ممکنه کتاب هایی که من دوست دارم بقیه دوست نداشته باشند. ولی من مینویسم برای اونهایی که دوست دارند.مدتیه که وسواس بیشتری در انتخاب کتاب و فیلم و افراد اطرافم به خرج می دم. این وسواس بعد از مطالعه کتاب &quot;اثر مرکب&quot; اثر معروف و خوشنام &quot;دارن هاردی&quot; در من ایجاد شد. یه روز یه پست  درمورد کتاب اثر مرکب خواهم نوشت.کتاب بزن به هدفامروز میخوام یه کتاب دیگه به نام &quot;بزن به هدف&quot; را برای کسانی که دنبال توسعه فردی هستند معرفی کنم. این کتاب در لیست کتاب های پرفروش نیویورک تایمز بوده. کتاب &quot;بزن به هدف&quot; اثر &quot;شان ویلن&quot; با ترجمه عالی &quot;حسین گازر&quot;  توسط نشر کوله پشتی چاپ شده.در این کتاب از 4 اصل اساسی و مهم صحبت شده که باید در زندگی همه ما مورد توجه زیاد قرار بگیره. این چهار اصل قدرت، اشتیاق، هدف و تولید هستند.بیشتر از این توضیح نمیدم که خودتون بخونید. نکات مهم در مورد این کتابفقط بگم که کتاب خیلی خوب ترجمه شده و وقتی شروع به مطالعه می کنید دوست دارید ادامه بدید تا تموم بشه. از کلی گویی و توضیحات زیاد در متن کتاب خودداری شده و نویسنده سریع میره سر اصل مطلب و مهمترین نکته اینکه این کتاب فقط 112 صفحه است و میشه زود تمومش کرد.از لینک زیر هم میشه کتاب را خرید: خریدکتابازکتابراه </description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Wed, 22 Apr 2020 13:16:04 +0430</pubDate>
            </item>
                    <item>
                <title>سلام چگونه از سایت آموزشی Udemy دوره های رایگان همراه با گواهینامه های رایگان دریافت نماییم؟</title>
                <link>https://virgool.io/applymag/%D8%B3%D9%84%D8%A7%D9%85-%DA%86%DA%AF%D9%88%D9%86%D9%87-%D8%A7%D8%B2-%D8%B3%D8%A7%DB%8C%D8%AA-%D8%A2%D9%85%D9%88%D8%B2%D8%B4%DB%8C-udemy-%D8%AF%D9%88%D8%B1%D9%87-%D9%87%D8%A7%DB%8C-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-%D9%87%D9%85%D8%B1%D8%A7%D9%87-%D8%A8%D8%A7-%DA%AF%D9%88%D8%A7%D9%87%DB%8C%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%D8%B1%D8%A7%DB%8C%DA%AF%D8%A7%D9%86-%D8%AF%D8%B1%DB%8C%D8%A7%D9%81%D8%AA-%D9%86%D9%85%D8%A7%DB%8C%DB%8C%D9%85-etwxp4l9dxgb</link>
                <description>با سلامحالا که مجبوریم به خاطر کرونا  خونه بمونیم، برای ما کامپیوتری ها بهترین فرصته تا به کارهای عقب افتاده برسیم.این روزها فرصت خوبی برای یادگیری موضاعات جدید از طریق آموزش آنلاین هست.خیلی ها دوست دارن در دوره های آنلاین شرکت کنن، مطالب جدید یاد بگیرن و گواهینامه این دوره ها را هم دریافت  و به رزومه لینکدین اضافه کنن. سایت هایی مثل coursera , edx دوره های انلاین زیادی برگزار می کنن ولی برای اعطای گواهینامه مبلغی را از 50 تا 500 دلار دریافت می کنن که برای ما ایرانی ها خیلی زیاده و تازه اگر هم کارت اعتباری بین المللی نداشته باشیم باید بگردیم یه شرکت مطمین پیدا کنیم و پول دلار را گرونتر پرداخت کنیم تا این دوره ها را برامون بخرن یا خیلی پررو باشیم با شرمندگی از یکی از دوست های خارج نشین خواهش کنیم که برامون پرداخت کنه. خب هر دوتاش کار سختیه.حالا چکار کنیم؟یه سایت آموزش آنلاین دیگه هست که من خیلی ازش راضیم. این سایت udemy  هست.حراج سایت udemy.comسایت udemy هم دوره های آنلاین برگزار می کنه. این ذوره ها موضوعات خیلی متنوعی دارن. هم دوره های رایگان داره و هم دوره های پولی. بعید موضوعی باشه که تو سایت udemy براش آموزشی وجود نداشته باشه. بعضی وقت ها هم مثل همین روزها حراج برگزار می کنه و با تخفیف بالا دوره ها را عرضه می کنه. این روزها هم بخاطر کرونا حراج گذاشته و مثلا دوره های 200 دلاری را 10 دلار ارائه میده.ولی خب برای ما ایرانی ها که کارت اعتباری بین المللی نداریم حتی پرداخت 1 دلار هم سخته.خبر خوب:کوپن های رایگان udemyسایت udemy بعضی وقت ها یک سری کوپن های تخفیف 100 درصدی برای مشتریان خاص ارائه میده. مشتریان خاص کسانی هستند که در دوره های زیادی شرکت کردند. بعضی از این مشتریان خاص علاقه ای به استفاده از این کوپن ها ندارن. در نتیجه ما میتونیم از کوپن اونها استفاده کنیم. من در این مدت یه سایت و یک کانال تلگرام پیدا کردم که این کوپن ها را رایگان ارائه میدن و کوپن ها واقعا عالی هستند. من خودم در این مدت دوهفته در سه دوره آنلاین خیلی خوب شرکت کردم و پس از اتمام دوره گواهینامه گرفتم و به صفحه لینکدین اضافه کردم. قیمت هر کدوم از این دوره ها در حالت عادی بالای 200 دلار بود که برای من رایگان در اومد. باورش سخته ولی باور کنید.فقط یادتون باشه که این کوپن ها محدودیت زمانی دارن و باید خیلی سریع به محض اینکه کوپن رادریافت کردید برای درس ثبت نام کنید.سایت https://couponscorpion.com/  و کانال تلگرامی udemycoursefreeforuمن هر سه تا کوپن رایگانم را از این سایت و کانال دریافت کردم. امروز سه تا کوپن جدید هم گرفتم.امیدوارم کوپن های رایگان زیادی دریافت کنید.</description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Tue, 31 Mar 2020 21:40:12 +0430</pubDate>
            </item>
                    <item>
                <title>رابطه هوش مصنوعی، یادگیری ماشین و یادگیری عمیق</title>
                <link>https://virgool.io/@seilsepour/%D8%B1%D8%A7%D8%A8%D8%B7%D9%87-%D9%87%D9%88%D8%B4-%D9%85%D8%B5%D9%86%D9%88%D8%B9%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D9%85%D8%A7%D8%B4%DB%8C%D9%86-%D9%88-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D8%B9%D9%85%DB%8C%D9%82-sgsfowfagyq3</link>
                <description>سلاماین تصویر را هم خیلی وقت پیش دیده بودم. امروز یادم افتاد که اینجا آپلود کنم. این تصویر خیلی واضح هست و نیاز به توضیح نداره. فقط نکته مهمش به نظرم این هست که نشون میده یادگیری ماشین، تنها بخشی از هوش مصنوعی هست و یادگیری عمیق هم تنها بخشی از یادگیری ماشین است.یعنی هوش مصنوعی شامل قسمت های دیگه ای هم میشه که ممکنه ارتباطی با یادگیری نداشته  نباشند.رابطه هوش مصنوعی، یادگیری ماشین و یادگیری عمیقمنبع:https://www.amazon.com/Deep-Learning-Python-Francois-Chollet/dp/1617294438</description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Mon, 09 Mar 2020 15:03:04 +0330</pubDate>
            </item>
                    <item>
                <title>معماری کلی شبکه های یادگیری عمیق</title>
                <link>https://virgool.io/@seilsepour/%D9%85%D8%B9%D9%85%D8%A7%D8%B1%DB%8C-%DA%A9%D9%84%DB%8C-%D8%B4%D8%A8%DA%A9%D9%87-%D9%87%D8%A7%DB%8C-%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D8%B9%D9%85%DB%8C%D9%82-shdknjsihufq</link>
                <description>سلامتصویر زیر بهترین تصویری هست که تا حالا در مقالات و کتاب های مختلف در مورد معماری شبکه های یادگیری عمیق دیدم.معماری شبکه های یادگیری عمیقهمانطور که در تصویر واضح هست، شبکه های یادگیری عمیق یا Deep Learning از لایه های مختلف و متوالی تشکیل شدند و کار اصلی این لایه ها به دست آوردن یک سری وزن یا weight هست که با آنها بتونیم ورودی را به خروجی نسبت بدیم. در واقع شبکه یادگیری عمیق میخواد با یه سری وزن ها x را به y نسبت بده. تابع زیان یا Loss function تابعی هست که در هر مرحله مقدار ایجاد شده بوسیله شبکه را (y&#x27;) با مقداری که درست هست و انتظار داریم (y) مقایسه می کنه و یه مقداری به نام loss score به دست میاره. مقدار loss score به تابع optimizer فرستاده میشه و به وسیله عملیات back propagation مقدارهای قبلی وزن ها بهنگام میشن تا در دور بعد نتایج بهتری به دست بیاد.میدونم ممکنه الان این مطالب کمی براتون نامفهوم باشه، ولی نگران نباشید منم اولش همینجوری بودم. کم کم به مرور زمان یاد میگیرید.این تصویر را از کتاب Deep learning with python برداشتم که به نظرم بهترین و کاربردی ترین کتاب در این زمنیه است. نویسنده این کتاب آقای François Chollet در شرکت گوگل در توسعه دو کتابخانه معروف Tensorflow و keras همکاری داشته.منبع: https://www.amazon.com/Deep-Learning-Python-Francois-Chollet/dp/1617294438 </description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Sun, 08 Mar 2020 18:25:01 +0330</pubDate>
            </item>
                    <item>
                <title>تفاوت Classification و Regression</title>
                <link>https://virgool.io/@seilsepour/%D8%AA%D9%81%D8%A7%D9%88%D8%AA-classification-%D9%88-regression-kzi6rqmpfptm</link>
                <description>در این مطلب سعی می کنم خیلی ساده و شفاف تفاوت الگوریتم های Classification و Regression را توضیح میدم. اول که هر دو این الگوریتم ها در دسته الگوریتم های یادگیری ماشین Supervised قرار می گیرن. در روشهای یادگیری Supervised، هدف یادگیری تابع f است که متغیر ورودی x را به متغیر خروجی y نگاشت می نماید. یعنی y=f(x)تفاوت اصلی این دو روش در خروجی آنهاست. در Regression خروجی به صورت عددی (پیوسته) و در Classification خروجی به صورت دسته، گروه، یا برچسب (گسسته) است.برای مثال، فرض کنید که دیتاست شامل مشخصات املاک و قیمت های آن ها را در اختیار دارید و الگوریتم شما باید قیمت یک خانه جدید را پیش بینی نماید. در این صورت این  یک وظیفه Regression است که خروجی ممکن است یک عدد صحیح یا اعشاری باشد.از طرفی دیگر، تصور نمایید که دیتاستی شامل پرونده های بیماران مبتلا به  دیابت و مشخصات انها در اختیار دارید و الگوریتم شما باید برای پرونده یک بیمار جدید پیش بینی نماید که آیا این بیمار به دیابت مبتلا هست و یا خیر؟ در واقع الگوریتم باید مشخص نماید که آیا بیمار جدید به دسته بیماران دیابتی تعلق دارد؟؟؟در این صورت این الگوریتم از نوع classification است.مثالی دیگر، فرض کنید دیتاستی شامل تصاویر سگ، گربه و اسب دارید. مثلا 1000 تصویر گربه، 1000 تصویر سگ و 1000 تصویر اسب. حال الگوریتم شما برای یک تصویر جدید باید تعیین نماید که تصویر سگ، گربه یا اسب است؟ این نیز یک وظیفه classification است.به صورت کلی الگوریتم های یادگیری ماشین به صورت زیر تقسیم بندی می شوند. در پست های بعد در مورد هر کدوم از اینها بیشتر می نویسم.الگوریتم های یادگیری ماشینمنبع https://medium.com/quick-code/regression-versus-classification-machine-learning-whats-the-difference-345c56dd15f7 </description>
                <category>باران سیل سپور</category>
                <author>باران سیل سپور</author>
                <pubDate>Sun, 08 Mar 2020 16:55:46 +0330</pubDate>
            </item>
            </channel>
</rss>