<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Amir Kabiri</title>
        <link>https://virgool.io/feed/@Akdev</link>
        <description>علاقمند به دنیای کامپیوترها !</description>
        <language>fa</language>
        <pubDate>2026-06-17 15:56:51</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/63886/avatar/avatar.png?height=120&amp;width=120</url>
            <title>Amir Kabiri</title>
            <link>https://virgool.io/@Akdev</link>
        </image>

                    <item>
                <title>Text vectorization در Keras بدون درد و خون ریزی</title>
                <link>https://virgool.io/@Akdev/text-vectorization-%D8%AF%D8%B1-keras-%D8%A8%D8%AF%D9%88%D9%86-%D8%AF%D8%B1%D8%AF-%D9%88-%D8%AE%D9%88%D9%86-%D8%B1%DB%8C%D8%B2%DB%8C-xwezf9l1msex</link>
                <description>بی مقدمه بریم سر اصل مطلب!Text vectorization اصلا چیه؟جوابش خیلی سادس، تبدیل متون به یک بردار عددی.مثلا ما جمله ی &quot;the cat sat on the mat&quot; رو داریم. میاییم اینو به یک بردار عددی مانند[2, 1751, 2485, 14, 2, 14745]تبدیل میکنیم.اینکار به چه دردی میخوره اصلا؟یکی از کاربرد هاش در زمینه ی هوش مصنوعی و الگوریتم های مختلف یادگیری ماشین و یادگیری عمیقه.مثلا تو شبکه های عصبی، ما یه سری محاسبات ریاضی ماتریسی داریم، ازین رو نمیتونیم که مثلا یه رشته رو در یه ماتریس ضرب کنیم! پس باید اون رشته رو هم به دنباله ای از اعداد تبدیل کنیم تا بتونیم روش محاسبه انجام بدیم.یکی از کاربردای دیگش مثلا میتونه تو سیستم های بازیابی اطلاعات باشه. ما داکیومنت های مختلفو به بردار تبدیل میکنیم. بعدش میتونیم فاصله ی این دو بردار رو با روش های موجود مانند فاصله اقلیدسی یا شباهت کسینوسی بسنجیم تا فهمیم که این دو تا داکیومنت چقدر به هم شبیه هستن.چطوری Text Vectorization رو انجام بدیم؟کتابخونه های مختلفی واسه زبانای مختلف وجود داره. حتی خودتون میتونین این الگوریتما رو پیاده کنین و از کتابخونه استفاده نکنین.ولی اینجا من میخوام کلاس TextVectorization رو از کتابخونه ی Keras بهتون معرفی کنم که ببینید چقدر کار باهاش راحته!اصل مطلبکراس (keras) یه کتابخونه برای یادگیری عمیقه که امکانات متعددی داره.در زمینه پیش پردازش متن هم یه سری توابع و کلاس های آماده داره که یکیش TextVectorization هست.خب اولش به صورت زیر ایمپورتش میکنیمfrom keras.layers.experimental.preprocessing import TextVectorizationبعدش اینطوری متونی که داریم رو بهش میدیم که یه سری محاسبات اولیه رو انجام بده:vectorizer = TextVectorization(max_tokens=20000, output_sequence_length=200) vectorizer.adapt(tf.data.Dataset.from_tensor_slices(list_of_texts))به max_tokens میتونین None بدین ، در این صورت هیچ محدودیتی نداره، ولی اگه مثل من بهش یه عدد مثل 20000 بدین، فقط 20000 کلمه ی پرتکرار رو تو لیست واژگانش نگه میداره.و output_sequence_length هم میگه که vector هایی که قراره برامون تولید کنه، اندازشون چقدر باشه؟اینجا 200 گذاشتم، بنابراین اگه جمله ای بهش بدین که 1000 تا کلمه داشته باشه، فقط 200 تا کلمه اولشو برمیداره و تبدیل به بردار میکنه.و در نهایت برای تبدیل رشته های به بردار اینطوری ازش استفاده میکنیم:texts = [&#039;hello world&#039;, &#039;the cat sat on the mat&#039;]
vectors = vectorizer(texts)سخن پایانیاین کلاس قابلیت های خیلی زیادی داره، حتی میتونه واستون tf-idf خروجی بده و کلی چیزای دیگه.اگه خواستین بیشتر بدونین به داکیومنتش مراجعه کنیدhttps://keras.io/api/layers/preprocessing_layers/core_preprocessing_layers/text_vectorization</description>
                <category>Amir Kabiri</category>
                <author>Amir Kabiri</author>
                <pubDate>Thu, 03 Jun 2021 13:07:54 +0430</pubDate>
            </item>
                    <item>
                <title>الگوریتم فشرده سازی JPEG</title>
                <link>https://virgool.io/@Akdev/%D8%A7%D9%84%DA%AF%D9%88%D8%B1%DB%8C%D8%AA%D9%85-%D9%81%D8%B4%D8%B1%D8%AF%D9%87-%D8%B3%D8%A7%D8%B2%DB%8C-jpeg-%DA%86%DA%AF%D9%88%D9%86%D9%87-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF-eqshyb2jjwnf</link>
                <description>سلام، تو این ویدیو به صورت مختصر نحوه ی کارکرد این الگوریتم رو شرح دادم. که در انتهای این پست میتونین ویدیو رو مشاهده کنید.مراحل فشرده سازی JPEG : تبدیل عکس به بلوک های 8 پیکسل در 8 پیکسلتبدیل RGB به YCbCrتبدیل مقادیر هر پیکسل به بازی -128 تا 127تبدیل گسسته کسینوسQuantizationاسکن پیکسل های به صورت زیگ زاگانجام تبدیل Differential Pulse Code Modulation بر روی DC componentانجام Run Length Encoding بر روی AC componentsانجام الگوریتم هافمن بر روی نتیجه ی نهایی https://www.aparat.com/v/YswZH </description>
                <category>Amir Kabiri</category>
                <author>Amir Kabiri</author>
                <pubDate>Sun, 11 Apr 2021 19:45:19 +0430</pubDate>
            </item>
                    <item>
                <title>نحوه ی ایجاد Custom Helper در Laravel</title>
                <link>https://virgool.io/@Akdev/%D9%86%D8%AD%D9%88%D9%87-%DB%8C-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-custom-helper-%D8%AF%D8%B1-laravel-y7jfhvfckt4x</link>
                <description>سلام، تو این پست میخوام بهتون یه ساختار معرفی کنم که میتونین تمیزتر و راحت تر Helper های شخصی سازی شده ایجاد کنید.احتمالا با helper های built-in لاراول آشنا هستین. مثل back و request و ... که تو عکس زیر هم میتونید ببینید:حالا هلپر های شخصی خودمون رو کجا و به چه صورتی بنویسیم؟شروع1. در ابتدا یه فولدر به اسم Helpers تو فولدر app ایجاد کنید.2. یه فایل به اسم index.php داخل فولدر Helpers که ساختین ایجاد کنین و کد زیرو داخلش قرار بدین:3. فایل composer.json رو باز کنین و  قسمتای مشخص شده رو بهش اضافه کنین:حالا فایل app/Helpers/index.php به صورت خودکار موقع اجرای لاراول لود میشه و کدی که داخلش گذاشتیم ، Helper هایی که تو اون فولدر هستن رو لود میکنه و همه جا میتونین ازین Helper ها استفاده کنید.نتیجه ی نهایی و یک Helper نمونه:اگه ایده ای واسه بهتر شدن این پروسه در نظر دارین حتما از قسمت کامنتا بهم اطلاع بدین تا اضافه کنم.</description>
                <category>Amir Kabiri</category>
                <author>Amir Kabiri</author>
                <pubDate>Sat, 03 Apr 2021 22:29:26 +0430</pubDate>
            </item>
                    <item>
                <title>یادگیری عمیق چگونه کار میکند ؟ راهنمای سریع مناسب برای همه</title>
                <link>https://virgool.io/hooshteam/%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C-%D8%B9%D9%85%DB%8C%D9%82-%DA%86%DA%AF%D9%88%D9%86%D9%87-%DA%A9%D8%A7%D8%B1-%D9%85%DB%8C%DA%A9%D9%86%D8%AF-%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C-%D8%B3%D8%B1%DB%8C%D8%B9-%D9%85%D9%86%D8%A7%D8%B3%D8%A8-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%87%D9%85%D9%87-djdg4olf1mcg</link>
                <description>هوش مصنوعی (Artificial Intelligence) و یادگیری ماشین (Machine Learning) از داغ ترین موضوعات حال حاضر دنیای تکنولوژی هستند.اصطلاح AI یا Artificial Intelligence این روز ها همه جا شنیده میشود. ممکن است شما هم شنیده باشید که توسعه دهندگان و برنامه نویسان مختلف قصد یادگیری هوش مصنوعی را دارند. یا حتی شنیده باشید که آن ها میخواهند از هوش مصنوعی در سرویس های خود استفاده کنند. اما بیشتر افراد نمیدانند که هوش مصنوعی دقیقا چیست.برای اولین بار که این مقاله را بخوانید شما پایه و اساس هوش مصنوعی و یادگیری ماشین را خواهید فهمید. مهمتر از همه شما خواهید فهمید که یادگیری عمیق (از محبوب ترین انواع یادگیری ماشین) چگونه کار میکند.این مقاله برای همه افراد مناسب است. به همین جهت محاسبات پیچیده ریاضی در این مقاله به کار برده نخواهد شد.پیش زمینهاولین قدم برای درک نحوه کارکرد یادگیری عمیق ، فهمیدن تفاوت بین اصطلاحات مهم است.هوش مصنوعی در مقایسه با یادگیری ماشینهوش مصنوعی شبیه سازی هوش انسانی در کامپیوتر است.زمانی که تحقیقات در حوزه هوش مصنوعی آغاز شد، دانشمندان در پی تکثیر و شبیه سازی هوش انسانی برای کارهای مشخص مانند بازی کردن یک گیم بودند.آن ها تعداد زیادی از قوانین را برای کامپیوتر تعریف کردند تا کامپیوتر بر اساس آن قوانین محاسبات خود را انجام دهد. کامپیوتر لیست مشخصی از اقدامات ممکن را در اختیار داشت و تصمیمات مختلفی را بر اساس آن قوانین میگرفت.یادگیری ماشین به توانایی یادگرفتن الگو های موجود از مقدار زیادی داده ها گفته میشودیادگیری ماشین به کامپیوتر ها اجازه میدهد که خودشان یادبگیرند. این نوع از یادگیری به قدرت پردازش کامپیوتر های امروزی نیاز دارد که میتوانند مقدار زیادی داده را به سادگی پردازش کنند.یادگیری نظارت شده در مقایسه با یادگیری بدون نظارتیادگیری با ناظر یا نظارت شده نیازمند داده های برچسب گذاری شده میباشد که شامل داده های ورودی و خروجی مورد نظر به ازای هر داده است.زمانی که شما یک هوش مصنوعی را با استفاده از روش نظارت شده آموزش میدهید، در واقع شما باید مقدار زیادی داده به سیستم بدهید و خروجی مورد نظر را هم به ازای هر داده برای سیستم مشخص کنید.اگه خروجی تولید شده توسط هوش مصنوعی اشتباه باشد، سیستم هوش مصنوعی دوباره پردازش مورد نظر را انجام میدهد. این پردازش بارها روی داده های ورودی انجام خواهد شد تا زمانی که هوش مصنوعی دیگر خطا نکند و به درجه ی بالایی از دقت برسد.یک مثال از یادگیری نظارت شده ، پیش بینی آب و هوا توسط هوش مصنوعی است. هوش مصنوعی یاد میگیرد تا هوا را با استفاده از داده های از قبل تعیین شده و موجود پیش بینی کند. داده های ورودی شامل فشار، رطوبت و سرعت باد میشود و خروجی دما است.یادگیری بدون ناظر یا نظارت نشده یکی از روش های یادگیری ماشین است که با استفاده از داده های بدون برچسب انجام میشود. در حقیقت ما خروجی مورد انتظار هر ورودی را نداریم.وقتی شما یک هوش مصنوعی را به روش یادگیری بدون نظارت آموزش میدهید ، به هوش مصنوعی اجازه میدهید تا داده هارا به قسمت های منطقی دسته بندی کند.یک مثال از یادگیری بدون نظارت پیش بینی رفتار توسط هوش مصنوعی در یک وبسایت فروشگاهی است. در این مثال هوش مصنوعی با استفاده از داده های برچسب گذاری شده آموزش نمی بیند. در عوض هوش مصنوعی دسته بندی خودش را بر روی داده های ورودی اعمال خواهد کرد. که این به شما خواهد گفت که کدوم نوع از کاربران به خرید چه کالا هایی علاقمند هستند.هم اکنون، یادگیری عمیق چگونه کار میکند؟شما الان آماده هستید تا بدانید که یادگیری عمیق چیست و چگونه کار میکند.یادگیری عمیق یکی از روش های یادگیری ماشین است که به ما اجازه میدهد یک هوش مصنوعی را با استفاده از یک سری داده ورودی آموزش دهیم تا خروجی مورد نظر ما را پیش بینی کند. هردو روش یادگیری نظارت شده و یادگیری بدون نظارت میتوانند برای آموزش هوش مصنوعی استفاده شوند.ما با ساختن سرویس فرضی پیش بینی قیمت بلیط هواپیما ، خواهیم آموخت که یادگیری عمیق چگونه کار میکند. ما این سیستم هوش مصنوعی را به روش یادگیری نظارت شده آموزش خواهیم داد.ما میخواهیم تا سیستم پیش بینی قیمت بلیط هواپیما با استفاده از ورودی های زیر قیمت بلیط هارا پیش بینی کند (برای سادگی کار از بلیط های رفت و برگشت چشم پوشی میکنیم):فرودگاه مبدافرودگاه مقصدتاریخ سفرشرکت هواپیماییشبکه های عصبیبیایید نگاهی به داخل مغر هوش مصنوعی مان بیاندازیم.مانند مغز انسان ها و حیوانات ، هوش مصنوعی پیش بینی کننده ما هم از نورون تشکیل شده است. در تصویر زیر نورون ها با استفاده از دایره نمایش داده شده اند. این نورون ها به هم پیوسته هستند.نورون ها در سه نوع لایه مختلف گروه بندی میشوند:لایه ورودیلایه (های) مخفیلایه خروجیلایه ورودی داده های ورودی را دریافت میکند. در مثال ما 4 نورون در لایه ورودی داریم:فرودگاه مبدا ، فرودگاه مقصد ، تاریخ سفر و شرکت هواپیمایی. لایه ورودی ، داده های ورودی را به اولین لایه مخفی انتقال میدهد.لایه های مخفی محسبات ریاضی را روی داده های ما اعمال میکنند. یکی از چالش های ساختن شبکه های عصبی مشخص کردن تعداد لایه ها و تعداد نورون ها در هر لایه می باشد.واژه &quot;Deep&quot; در ِDeep Learning (یادگیری عمیق) به داشتن بیش از یک لایه مخفی اشاره دارد.لایه خروجی ، داده های نهایی را بازگشت میدهد. در مثال ما لایه خروجی هزینه پیش بینی شده ی بلیط را به ما بازمیگرداند.اما این شبکه عصبی چگونه عمل پیش بینی هزینه را انجام میدهد؟اینجا جایی است که جادوی یادگیری عمیق شروع میشود.هر ارتباطی بین نورون ها به یک وزن مرتبط است. این وزن اهمیت ارزش ورودی را مشخص میکند. وزن های اولیه به صورت رندوم ایجاد میشوند.زمانی که هزینه یک بلیط هواپیما را پیش بینی میکنیم ، فاکتور تاریخ سفر یکی از مهمترین و سنگین ترین فاکتور ها است. ازین رو کانکشن های نورونی که مربوط به فاکتور زمان سفر هستند وزن بزرگتری خواهند داشت.هر نورون یک تابع Activation دارید. درک این توابع بدون استدلال ریاضی بسیار سخت است. یکی از اهداف استاندارد کردن خروجی هر نورون است.پس از اینکه داده های ورودی از تمام لایه های شبکه عصبی عبور کرد ، در نهایت داده های خروجی از لایه خروجی بازگشت داده میشود.می بینید که چیز سختی درباره شبکه های عصبی وجود ندارد.آموزش شبکه عصبیآموزش هوش مصنوعی از سخت ترین قسمت های یادگیری عمیق است. اما چرا؟شما به مجموعه داده های بزرگی نیاز دارید.شما به قدرت محاسباتی زیادی نیاز دارید.ما برای سیستم تخمین هزینه بلیط هواپیما نیاز داریم تا داده های موجود در این حوزه را پیدا و جمع آوری کنیم. و به دلیل زیاد بودن شرکت های هواپیمایی احتمالی و تاریخ سفر های احتمالی و ترکیب این فاکتور ها ، ما به لیست بزرگی از هزینه تیکت ها نیاز داریم.برای آموزش مدل هوش مصنوعی ، ما نیاز داریم تا داده های ورودی را وارد کرده و خروجی حاصل را با خروجی مورد انتظار مقایسه کنیم. تا زمانی که هوش مصنوعی آموزش ندیده است ، خروجی حاصل ممکن است اشتباه باشد.یکبار که ما کل مجموعه داده ها را وارد کردیم ، میتوانیم یک تابعی بسازیم که نشان دهد چقدر از خروجی های مدل هوش مصنوعی در مقایسه با خروجی های واقعی اشتباه بوده است. این تابع ، تابع هزینه (Cost Function) نامیده میشود.در حالت ایده آل ما میخواهیم تا تابع هزینه صفر باشد. این حالت زمانی رخ میدهد که تمامی خروجی های مدل هوش مصنوعی با خروجی های واقعی یکسان باشند.چگونه میتوانیم مقدار تابع هزینه را کاهش دهیم؟ما وزن های بین نورون ها را تغییر می دهیم. ما میتوانیم به صورت رندوم آن هارا تغییر بدهیم  تا زمانی که تابع هزینه ها به صفر میل کند ، اما این راه خیلی کارآمدی نیست.در عوض ، ما از تکنیک Gradient Descent استفاده خواهیم کرد.روش Gradient Descent یک تکنیکی است که به ما اجازه میدهد تا مینیمم یک تابع را پیدا کنیم. در این مثال ، ما به دنبال مینیمم تابع هزینه خواهیم گشت.این تکنیک در افزایش های کوچک بعد هر پیمایش داده ها ، وزن هارا تغییر میدهد. با محاسبه ی مشتق (یا شیب) تابع هزینه در یک مجموعه مشخصی از وزن ها ، ما میتوانیم ببینیم که مینیمم تابع در کدوم جهت است.برای کاهش دادن تابع هزینه ، شما نیاز دارید تا چندین بار بر روی داده ها پیشمایش کنید. به همین  دلیل است که به قدرت محسباتیه بالایی نیاز دارید.آپدیت کردن وزن ها توسط Gradient Descent به صورت خودکار انجام میشود. این جادوی یادگیری عمیق است.یک بار که ما سیستم هوش مصنوعی تعیین هزینه بلیط را آموزش دادیم ، ما میتوانیم از آن بارها برای پیش بینی کردن هزینه استفاده کنیم.کجا میتوانم بیشتر یاد بگیرم؟انواع دیگری از شبکه های عصبی وجود دارد:شبکه های عصبی Convolutional برای بینایی کامپیوتر و شبکه های عصبی Recurrent برای پردازش زبان طبیعی.درحال حاضر یکی از بهترین دوره های یادگیری عمیق ، دوره ی Deep Learning Specialization از Andrew Ng است.خلاصهیادگیری عمیق از شبکه های عصبی برای شبیه سازی هوش انسانی استفاده میکند.سه نوع لایه های نورونی در یک شبکه عصبی موجود است : لایه ورودی ، لایه (های) مخفی و لایه خروجی.روابط بین نورون ها به یک وزن مرتبط میشود که نشان دهنده اهمیت ارزش داده ورودی است.نورون ها یک تابع Activation را روی داده ها اعمال میکنند تا نتیجه خروجی از نورون را استاندارد سازی بکنند.برای آموزش یک شبکه عصبی شما به مقدار زیادی داده نیاز دارید.پس از هر پیشمایش بر روی مجموعه داده ها ، وزن بین نورون ها به وسیله Gradient Descent تغییر خواهد کرد تا مقدار تابع هزینه کاهش یابد.این مقاله ای که خواندید ترجمه ای از مقاله ی Want to know how Deep Learning works? Here is a quick guide for everyone.بود که در جهت افزایش منابع فارسی توسط بنده ترجمه شد.</description>
                <category>Amir Kabiri</category>
                <author>Amir Kabiri</author>
                <pubDate>Mon, 07 Oct 2019 21:48:54 +0330</pubDate>
            </item>
                    <item>
                <title>دو روش اشتراک گذاری لوکال هاست</title>
                <link>https://virgool.io/@Akdev/%D8%AF%D9%88-%D8%B1%D9%88%D8%B4-%D8%A7%D8%B4%D8%AA%D8%B1%D8%A7%DA%A9-%DA%AF%D8%B0%D8%A7%D8%B1%DB%8C-%D9%84%D9%88%DA%A9%D8%A7%D9%84-%D9%87%D8%A7%D8%B3%D8%AA-zta5ecbq3rzo</link>
                <description>سلاماین اولین نوشته من هست و میخوام تو این مقاله دو روش برای به اشتراک گذاری لوکال هاست در بستر اینترنت رو بهتون معرفی کنم.بعضی وقتا لازمه پروژه هایی که روی لوکال هاستتون هست رو با افراد دیگه ای (مثلا کارفرما) به اشتراک بذارین و دیپلوی کردن پروژه روی سرور و کانفیگ اون کار طولانی و زمانبری میتونه باشهروش اولیه ابزاری وجود داره برای اینکار به نام ngrok.io که میتونین از وبسایتش دانلود کنید و استفاده کنید. روش استفاده ازش هم خیلی سادس. بعد از دانلود از حالت فشرده خارج کنید و فایل ngrok.exe رو اجرا کنید.بعدش توی کامند لاین بازشده دستور ngrok http 80 رو بنویسین. به جای 80 میتونین هر پورت دیگه ای که میخواین رو بذارینبعدش به شما دوتا لینک میده یکی با پروتوکل http  و دیگری https که با هردو میتونین به لوکال هاستتون دسترسی داشته باشینngrok.ioروش دومتو این روش میخوایم با استفاده از آیپی پابلیک و بدون استفاده از ابزار خاصی این کار رو انجام بدیم.برای این کار باید پورت 80 (یا هرپورتی که میخواین) رو از تنظیمات مودم به کامپیوتری که میخواییم فروارد کنیم.وارد تنظیمات مودم بشین و به قسمت NAT برین. بسته به مدل مودمتون محل قرار گیری NAT ممکنه متفاوت باشه ولی برای من تو قسمت Advanced Setup هست.حالا به قسمت Virtual Server برین و پورت 80 (یا هر پورت دیگه) رو به آیپی کامپیوتری که میخواین فروارد کنید.تنظیمات مودمتنظیمات رو طبق تصویر انجام بدین.میتونین حتی کاری کنین سیستم شما از مودم ، همیشه یه آیپی داخلی ثابت بگیره و نیاز نباشه تنظیمات رو هربار انجام بدینموفق باشید</description>
                <category>Amir Kabiri</category>
                <author>Amir Kabiri</author>
                <pubDate>Tue, 20 Aug 2019 20:43:42 +0430</pubDate>
            </item>
            </channel>
</rss>