معماری لی نت-۵ (LeNet-5) چگونه است؟ در حوزهی یادگیری عمیق (Deep Learning) شبکههای عصبی کانولوشنی (CNN)، نوعی شبکهی عصبی مصنوعی هستند که اغلب در شناسایی تصاویر به کار میروند؛ بهعبارت دیگر، شبکههای عصبی کانولوشنی پایهواساس بینایی ماشین (Computer Vision)، مبتنی بر یادگیری عمیق (Deep Learning)، فعلی هستند. شبکههای عصبی کانولوشنی در محبوبیت و توسعهی یادگیری عمیق (Deep Learning) و شبکههای عصبی (Neural Networks) نقش بسیار مهمی داشتهاند.
زمانیکه از شبکههای عصبی کانولوشنی (CNN) حرف به میان میآید، قطعاً از اولین معماری کانولوشنی که از فرایند انتشار روبهعقب استفاده کرده است، یعنی معماری لینت-۵ (LeNet-5)، یاد میشود؛ درواقع میتوان گفت شبکهی عصبی کانولوشنی و یادگیری عمیق با معرفی معماری لی نت-۵ (LeNet-5) شروع شده است.
در این مطلب این معماری را بررسی میکنیم و با ساختار این معماری و لایههای مختلف آن آشنا میشویم.
معماری لی نت-۵ (LeNet-5)
معماری لینت-۵ (LeNet-5) یک شبکهی عصبی کانولوشنی است که برای طبقهبندی اعداد دستنویس روی چکها در امریکا استفاده شد. این معماری را Yann LeCun، Leon Botto، Yosuha Bengio و Patrick Haffner در سال ۱۹۹۸ ارائه کردند.
قبل از ظهور معماری لینت-۵ (LeNet-5) شناسایی کاراکتر با استفاده از مهندسی ویژگی دستی (Feature engineering by hand) و مدلهای یادگیری ماشین (Machine Learning) برای یادگیری طبقهبندی این ویژگیها انجام میشد. معماری لینت-۵ (LeNet-5) کار مهندسی ویژگی دستی را حذف کرد؛ زیرا خود شبکه بهطور خودکار بهترین ویژگیها را از تصاویر خام ورودی استخراج میکند.
تا اینجا با معماری لینت-۵ (LeNet-5)، بهطور کلی، آشنا شدیم. در بخش بعد ساختار این معماری را با جزئیات بررسی خواهیم کرد.
برای آشنایی با یادگیری عمیق مطلب یادگیری عمیق (Deep Learning) را مطالعه کنید.
جزئیات ساختار معماری لینت-۵ (LeNet-5)
لی نت-۵ (LeNet-5) شبکهی کوچکی است که لایههای کانولوشنی (Convolution Layers)، لایه ادغام (Pooling layer) و لایه کاملاً متصل (Fully connected layer) را دربرمیگیرد. معماری لینت-۵ اساس دیگر مدلهای یادگیری عمیق (Deep Learning) محسوب میشود. همانطور که در شکل بالا میبینیم، این معماری بهطور کلی هفت لایه دارد که در ادامه آنها را گامبهگام با هم بررسی میکنیم.
برای آشنایی با لایه ادغام مطلب لایه ادغام (Pooling Layer) در شبکه عصبی کانولوشنی (CNN) را مطالعه کنید.
لایهی ورودی
ورودی شبکه لی نت-۵ (LeNet-5) یک عکس سیاهوسفید با اندازهی ۳۲×۳۲ است.
لایهی اول
در لایهی اول یک لایهی کانولوشن است که ۶ فیلتر با اندازهی ۵×۵ با مقدار گام (Stride) ۱ دارد. این لایه روی عکس ورودی اعمال میشود که ۶ نوع ویژگی موجود در عکس را استخراج میکند. نهایتاً در خروجی اندازهی عکس از ۳۲×۳۲ به ۲۸×۲۸ تبدیل میشود.
لایهی دوم
در این مرحله یک لایهی ادغام (Average pooling) با فیلتر ۲×۲ و مقدار گام (Stride) ۲ روی هر ۶ نقشهی ویژگی (Feature Map) که در مرحلهی قبل به دست آمده است اعمال میشود. هدف استفاده از این لایه این است که ویژگیهای غالب (مهمتر) را استخراج کنیم. در اینجا اندازهی عکس به ۱۴×۱۴ کاهش مییابد.
لایهی سوم
در این مرحله یک لایهی کانولوشن دیگر داریم که ۱۶ فیلتر با اندازهی ۵×۵ و مقدار گام (Stride) ۱ دارد؛ درواقع میتوان گفت در این مرحله ما به دنبال استخراج ویژگی از نقشهی ویژگی (Feature Map) مراحل قبل هستیم.
لایهی چهارم
در این لایه دوباره یک لایهی ادغام روی هر ۱۶ نقشهی ویژگی بهدستآمده از مرحلهی قبل اعمال میشود. لایهی ادغام در اینجا فیلتر ۲×۲ و مقدار گام ۲ است. خروجی این لایه ۱۶ نقشهی ویژگی (Feature Map) با اندازهی ۵×۵ است.
لایهی پنجم
در این مرحله یک لایهی کانولوشنی داریم که ۱۲۰ فیلتر با اندازهی ۱×۱ دارد. این لایهی کانولوشنی روی نقشهی ویژگی مرحلهی قبل اعمال میشود و در خروجی ۱۲۰ نقشهی ویژگی با اندازهی ۱×۱ به ما میدهد. این بهمعنای آن است که این لایه ۱۲۰ ویژگی متفاوت از خروجی مرحلهی قبل را به ما میدهد.
لایهی ششم
در این مرحله یک لایهی کاملاً متصل (Fully Connected Layer) ۸۴ واحدی داریم، بهاین معنا که شبکهی عصبی در اینجا ۸۴ ورودی دارد.
لایهی خروجی
در لایهی خروجی ۱۰ کلاس داریم؛ زیرا معماری لی نت-۵ (LeNet-5) برای شناسایی اعداد (۹-۰) ارائه شد. در این مرحله یک تابع فعالساز سافتمکس (Softmax) اعمال میشود که در خروجی ۱۰ احتمال برای هر کلاس به ما میدهد.
لازم است اشاره کنیم که در تمامی لایههای میانی یک تابع فعالساز تانژانت هایپربولیک (Tanh) روی خروجی اعمال میشود.
برای آشنایی با توابع فعالساز مطلب توابع فعالساز (Activation Functions) را مطالعه کنید.
خلاصهی مطالب دربارهی ساختار معماری لی نت-۵ (LeNet-5)
در این مطلب با معماری لی نت-۵، موارد استفاده، ساختار و ۷ لایهی موجود در آن آشنا شدیم. با استفاده از شکلهای ارائهشده در این مطلب میتوانید خلاصهای از تمامی لایههای موجود در معماری لی نت-۵ را به دست آورید.
برای آشنایی با شبکههای عصبی کانولوشنی مطلب شبکه عصبی کانولوشنی (CNN) را مطالعه کنید.
لی نت-۵ دارای چند لایه است و نام لایهی خروجی آن چیست؟
لی نت-۵ (LeNet-5) شبکهی کوچکی است که لایههای کانولوشنی (Convolution Layers)، لایه ادغام (Pooling layer) و لایه کاملاً متصل (Fully connected layer) را دربرمیگیرد. معماری لینت-۵ اساس دیگر مدلهای یادگیری عمیق (Deep Learning) محسوب میشود.در لایهی خروجی ۱۰ کلاس داریم؛ زیرا معماری لی نت-۵ (LeNet-5) برای شناسایی اعداد (۹-۰) ارائه شد. در این مرحله یک تابع فعالساز سافتمکس (Softmax) اعمال میشود که در خروجی ۱۰ احتمال برای هر کلاس به ما میدهد
لایهی دوم در معماری لی نت-۵ چه ویژگیهایی دارد و چگونه به لایههای دیگر مرتبط میشود؟
در این مرحله یک لایهی ادغام (Average pooling) با فیلتر ۲×۲ و مقدار گام (Stride) ۲ روی هر ۶ نقشهی ویژگی (Feature Map) که در مرحلهی قبل به دست آمده است اعمال میشود.
چه تفاوتهای اصلیای بین لایهی چهارم و لایهی پنجم در معماری لی نت-۵ وجود دارد؟
لایهی چهارم
در این لایه دوباره یک لایهی ادغام روی هر ۱۶ نقشهی ویژگی بهدستآمده از مرحلهی قبل اعمال میشود. لایهی ادغام در اینجا فیلتر ۲×۲ و مقدار گام ۲ است. خروجی این لایه ۱۶ نقشهی ویژگی (Feature Map) با اندازهی ۵×۵ است.
لایهی پنجم
در این مرحله یک لایهی کانولوشنی داریم که ۱۲۰ فیلتر با اندازهی ۱×۱ دارد. این لایهی کانولوشنی روی نقشهی ویژگی مرحلهی قبل اعمال میشود و در خروجی ۱۲۰ نقشهی ویژگی با اندازهی ۱×۱ به ما میدهد. این بهمعنای آن است که این لایه ۱۲۰ ویژگی متفاوت از خروجی مرحلهی قبل را به ما میدهد.
سوال ۳
لایهی ادغام در اینجا فیلتر ۲×۲ و مقدار گام ۲ است. خروجی این لایه ۱۶ نقشهی ویژگی (Feature Map) با اندازهی ۵×۵ است.
این مرحله یک لایهی کانولوشنی داریم که ۱۲۰ فیلتر با اندازهی ۱×۱ دارد. در خروجی ۱۲۰ نقشهی ویژگی با اندازهی ۱×۱ به ما میدهد
سوال ۲
در این مرحله یک لایهی ادغام (Average pooling) با فیلتر ۲×۲ و مقدار گام (Stride) ۲ روی هر ۶ نقشهی ویژگی (Feature Map) که در مرحلهی قبل به دست آمده است اعمال میشود. هدف استفاده از این لایه این است که ویژگیهای غالب (مهمتر) را استخراج کنیم.
سوال۱ لایه ها:
کانولوشنی
ادغام
کاملامتصل
تابع فعالساز تانژانت هایپربولیک (
سپاس فراوان ، بسیار عالی تمام مطالب لازم در رابطه با LeNet-5 با توضیحات کافی ارایه شده ،
ممنون که نظرتون رو به اشتراک گذاشتین.
تشکر عالی بود
منتظر مقاله های بعدی هستیم
راهی جز معرفی سایت خوبتون نداریم
اینقدر معرفی میکنم تا بخشی از زحمتی که کشیدید جبران بشه
ممنون از لطف شما دوست عزیز
فوق العاده بود.
با اینکه رشته تحصیلی من کامپیوتر نیست تونستم با این مقاله خیلی خوب به مبحث لی نت مشرف شدم. واقعا کارتون حرف نداره
تشکر از اینکه نظرتون رو با ما به اشتراک گذاشتین.
It was really helpful
Thanks a lot to cafetadris
خوشحالیم که مفید بوده براتون.
بسیار علمی و مفید، با اجازه شیر میکنم
سپاس دوست عزیز.
Many thanks for such a great lecture
سپاس دوست عزیز.