فصل سوم
شبکه های عصبی کم عمق
فصل 2 یادگیری نظارت شده را با استفاده از رگرسیون خطی 1 بعدی معرفی کرد. با این حال، این مدل فقط می تواند رابطه ورودی/خروجی را به صورت یک خط توصیف کند. این فصل شبکه های عصبی کم عمق را معرفی می کند. اینها توابع خطی تکه ای را توصیف می کنند و به اندازه کافی گویا هستند تا روابط پیچیده دلخواه بین ورودی ها و خروجی های چند بعدی را تقریب بزنند.
3.1 شبکه عصبی چیست؟
شبکه های عصبی کم عمق، توابع y = f[x, ϕ] با پارامترهای ϕ هستند که ورودی های چند متغیره x را به خروجی های چند متغیره y ترسیم می کنند. ما یک تعریف کامل را تا بخش 3.4 به تعویق می اندازیم و ایده های اصلی را با استفاده از یک شبکه مثال f[x, ϕ] معرفی می کنیم که یک ورودی اسکالر x را به یک خروجی اسکالر y ترسیم می کند و دارای ده پارامتر ϕ = {ϕ0, ϕ1, ϕ2, ϕ3, θ10 است. ، θ11، θ20، θ21، θ30، θ31}:
تابع فعالسازی ReLU
ما میتوانیم این محاسبه را به سه بخش تقسیم کنیم: ابتدا، سه تابع خطی دادههای ورودی (θ10 + θ11x، θ20 + θ21x، و θ30 + θ31x) را محاسبه میکنیم. دوم، سه نتیجه را از طریق یک تابع فعال سازی a[ ] منتقل می کنیم. در نهایت، سه فعال سازی حاصل را با ϕ1، ϕ2 و φ3 وزن می کنیم، آنها را جمع می کنیم و یک افست ϕ0 اضافه می کنیم.

برای تکمیل توضیحات، باید تابع فعال سازی a[ ] را تعریف کنیم. احتمالات زیادی وجود دارد، اما رایج ترین انتخاب واحد خطی اصلاح شده یا ReLU است:

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

شکل 3.1 واحد خطی اصلاح شده (ReLU).اگر ورودی کمتر از صفر باشد، این تابع فعال سازی صفر را برمی گرداند و در غیر این صورت ورودی را بدون تغییر برمی گرداند. به عبارت دیگر، مقادیر منفی را صفر می کند. توجه داشته باشید که بسیاری از گزینههای ممکن دیگر برای تابع فعالسازی وجود دارد (شکل 3.13 را ببینید)، اما ReLU رایجترین و سادهترین گزینه برای درک است.
شکل 3.2 خانواده توابع تعریف شده توسط معادله 3.1. الف-ج) توابع برای سه انتخاب مختلف از ده پارامتر ϕ. در هر مورد، رابطه ورودی/خروجی به صورت تکه ای خطی است. با این حال، موقعیت اتصالات، شیب مناطق خطی بین آنها و ارتفاع کلی متفاوت است.
به ده پارامتر در ϕ بستگی دارد. اگر این پارامترها را بدانیم، میتوانیم با ارزیابی معادله ورودی x، استنتاج (y) را پیشبینی کنیم. آموزش داده شده است
مجموعه داده {xi, yi}I، میتوانیم یک تابع حداقل مربعات از دست دادن L[φ] تعریف کنیم و از آن برای اندازهگیری استفاده کنیم.
مطمئن شوید که مدل چقدر این مجموعه داده را برای هر مقدار پارامتر معین ϕ توصیف می کند. برای آموزش مدل، مقادیر ϕˆ را جستجو می کنیم که این تلفات را به حداقل می رساند.
3.1.1 شهود شبکه عصبی
در واقع، معادله 3.1 خانواده ای از توابع خطی پیوسته تکه ای (شکل 3.2) را با حداکثر چهار ناحیه خطی نشان می دهد. اکنون معادله 3.1 را تجزیه می کنیم و نشان می دهیم که چرا این خانواده را توصیف می کند. برای درک آسان تر، تابع را به دو قسمت تقسیم می کنیم. ابتدا مقادیر میانی را معرفی می کنیم:

جایی که ما به h1، h2 و h3 به عنوان واحدهای پنهان اشاره می کنیم. دوم، خروجی را با ترکیب این واحدهای پنهان با یک تابع خطی محاسبه می کنیم: 1

شکل 3.3 جریان محاسباتی را نشان می دهد که تابع شکل 3.2a را ایجاد می کند. هر واحد پنهان شامل یک تابع خطی θ 0 + θ 1x ورودی است و آن خط توسط تابع ReLU a[ ] زیر صفر بریده می شود. موقعیت هایی که سه خط از صفر عبور می کنند به سه “مفصل” در خروجی نهایی تبدیل می شوند. سپس سه خط بریده شده به ترتیب با ϕ1، φ2 و φ3 وزن می شوند. در نهایت، افست φ 0 اضافه می شود که کنترل می کند ارتفاع کلی تابع نهایی
هر ناحیه خطی در شکل 3.3j مربوط به یک الگوی فعال سازی متفاوت در واحدهای پنهان است. هنگامی که یک واحد بریده می شود، آن را غیرفعال و زمانی که بریده نشده است، آن را فعال می گوییم. به عنوان مثال، منطقه سایه دار کمک هایی دریافت می کند
از h1 و h3 (که فعال هستند) اما نه از h2 (که غیر فعال است). شیب هر ناحیه خطی با (i) شیبهای اصلی θ 1 ورودیهای فعال برای این ناحیه و (ب) وزنهای φ که متعاقباً اعمال شدند تعیین می شود. برای مثال، شیب در ناحیه سایهدار (مسئله 3.3 را ببینید) θ11ϕ1 + θ31ϕ3 است، که در آن عبارت اول شیب پانل (g) و جمله دوم شیب پانل (i) است.
هر واحد پنهان یک “مفصل” به عملکرد کمک می کند، بنابراین با سه واحد پنهان می تواند چهار منطقه خطی وجود داشته باشد. با این حال، تنها سه تا از دامنه های این مناطق مستقل هستند. چهارمی یا صفر است (اگر تمام واحدهای پنهان در این منطقه غیرفعال باشند) یا مجموع شیب های مناطق دیگر است.
3.1.2 به تصویر کشیدن شبکه های عصبی
ما درباره یک شبکه عصبی با یک ورودی، یک خروجی و سه واحد پنهان بحث کردهایم. ما این شبکه را در شکل 3.4a تجسم می کنیم. ورودی در سمت چپ، واحدهای پنهان در وسط و خروجی در سمت راست قرار دارند. هر اتصال نشان دهنده یکی از ده پارامتر است. برای ساده کردن این نمایش، ما معمولاً پارامترهای رهگیری را ترسیم نمی کنیم، بنابراین این شبکه معمولاً مانند شکل 3.4b نشان داده می شود.
برای اهداف این کتاب، یک تابع خطی به شکل z′ = ϕ0 + ∑ φizi است. هر نوع تابع دیگری غیر خطی است. به عنوان مثال، تابع ReLU (معادله 3.2) و مثال شبکه عصبی حاوی آن (معادله 3.1) هر دو غیر خطی هستند. برای توضیح بیشتر به یادداشت های انتهای فصل مراجعه کنید.

شکل 3.3 محاسبه تابع در شکل 3.2a. a–c) ورودی x از سه تابع خطی عبور میکند که هر کدام دارای یک تقاطع y متفاوت θ•0 و شیب θ•1 هستند. d–f) هر خط از تابع فعال سازی ReLU عبور داده می شود که مقادیر منفی را به صفر می رساند. g–i) سپس سه خط بریده شده به ترتیب با ϕ1، φ2 و φ3 وزن (مقیاس) می شوند. j) در نهایت، توابع بریده شده و وزن شده جمع می شوند و یک افست φ 0 که ارتفاع را کنترل می کند، اضافه می شود. هر یک از چهار منطقه خطی مربوط به یک الگوی فعال سازی متفاوت در واحدهای پنهان است. در ناحیه سایه دار، h2 غیرفعال است (بریده شده)، اما h1 و h3 هر دو فعال هستند.

شکل 3.4 نشان دادن شبکه های عصبی. الف) ورودی x در سمت چپ، واحدهای پنهان h1، h2 و h3 در مرکز و خروجی y در سمت راست قرار دارند. محاسبات از چپ به راست جریان دارد. ورودی برای محاسبه واحدهای پنهان استفاده می شود که برای ایجاد خروجی ترکیب می شوند. هر یک از ده فلش نشان دهنده یک پارامتر است (تقاطع به رنگ نارنجی و شیب به رنگ سیاه). هر پارامتر منبع خود را چند برابر می کند و نتیجه را به هدف خود اضافه می کند. به عنوان مثال، ما پارامتر φ1 را در منبع h1 ضرب می کنیم و آن را به y اضافه می کنیم. گرههای اضافی حاوی یک (دایرههای نارنجی) را برای گنجاندن افستها در این طرح معرفی میکنیم، بنابراین 0 را در یک ضرب میکنیم (بدون اثر) و آن را به y اضافه میکنیم. توابع ReLU در واحدهای پنهان اعمال می شوند. ب) به طور معمول، رهگیری ها، توابع ReLU، و نام پارامترها حذف می شوند. این تصویر ساده تر نشان دهنده همان شبکه است.
3.2 قضیه تقریب جهانی
در بخش قبل، یک نمونه شبکه عصبی با یک ورودی، یک خروجی، توابع فعال سازی ReLU و سه واحد پنهان را معرفی کردیم. بیایید این را کمی تعمیم دهیم و مورد واحدهای پنهان D را در نظر بگیریم که در آن واحد پنهان d:

و اینها به صورت خطی برای ایجاد خروجی ترکیب می شوند:

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

شکل 3.5 تقریب تابع 1 بعدی (خط چین) توسط یک مدل خطی تکه ای. الف-ج) با افزایش تعداد مناطق، مدل به تابع پیوسته نزدیکتر و نزدیکتر میشود. یک شبکه عصبی با ورودی اسکالر یک منطقه خطی اضافی در هر واحد پنهان ایجاد می کند. قضیه تقریب جهانی ثابت میکند که با واحدهای پنهان کافی، یک شبکه عصبی کم عمق وجود دارد که میتواند هر تابع پیوسته معینی را که بر روی یک زیرمجموعه فشرده از RDi تعریف شده است، با دقت دلخواه توصیف کند.
3.3 ورودی ها و خروجی های چند متغیره
در مثال بالا، شبکه دارای یک ورودی اسکالر x و یک خروجی اسکالر y است. با این حال، قضیه تقریب جهانی همچنین برای حالت کلیتر که در آن شبکه ورودیهای چند متغیره x = [x1، x2، را ترسیم میکند، صادق است. . . , xD ]T برای پیش بینی های خروجی چند متغیره y = [y1, y2, . . . ، yD ]T. ابتدا چگونگی گسترش مدل را برای پیشبینی خروجیهای چند متغیره بررسی میکنیم. سپس ورودی های چند متغیره را در نظر می گیریم. در نهایت، در بخش 3.4، ما یک تعریف کلی از یک شبکه عصبی کم عمق ارائه می کنیم.
3.3.1 تجسم خروجی های چند متغیره
برای گسترش شبکه به خروجی های چند متغیره y، ما به سادگی از یک تابع خطی متفاوت از واحدهای پنهان برای هر خروجی استفاده می کنیم. بنابراین، یک شبکه با ورودی اسکالر x، چهار واحد پنهان h1، h2، h3، و h4 و یک خروجی چند متغیره 2 بعدی y = [y1, y2]T به صورت زیر تعریف می شود:

b)

شکل 3.6 شبکه با یک ورودی، چهار واحد مخفی و دو خروجی. الف) تجسم ساختار شبکه. ب) این شبکه دو تابع خطی تکه تکه y1[x] و y2[x] تولید می کند. چهار “مفصل” این توابع (در خطوط نقطه چین عمودی) محدود به قرار گرفتن در مکان های یکسان هستند زیرا واحدهای پنهان یکسانی دارند، اما شیب ها و ارتفاع کلی ممکن است متفاوت باشد.

شکل 3.7 تجسم شبکه عصبی با ورودی چند متغیره 2 بعدی x = [x1, x2]T و خروجی اسکالر y

دو خروجی دو تابع خطی متفاوت از واحدهای پنهان هستند.
همانطور که در شکل 3.3 دیدیم، “اتصالات” در توابع تکه ای به جایی بستگی دارد که توابع خطی اولیه θ 0 + θ 1x توسط توابع ReLU a[ ] در واحدهای پنهان بریده می شوند. از آنجایی که هر دو خروجی y1 و y2 توابع خطی متفاوتی از چهار واحد پنهان هستند، چهار “مفصل” در هر یک باید در مکانهای مشابهی باشند. با این حال، شیب مناطق خطی و افست عمودی کلی می تواند متفاوت باشد (شکل 3.6).
3.3.2 تجسم ورودی های چند متغیره
برای مقابله با ورودی های چند متغیره x، روابط خطی بین ورودی و واحدهای پنهان را گسترش می دهیم. بنابراین یک شبکه با دو ورودی x = [x1, x2]T و یک خروجی اسکالر y (شکل 3.7) ممکن است دارای سه واحد پنهان باشد که توسط:

شکل 3.8 پردازش در شبکه با دو ورودی x = [x1, x2]T، سه واحد پنهان h1، h2، h3 و یک خروجی y. الف-ج) ورودی هر واحد پنهان تابعی خطی از دو ورودی است که مربوط به یک صفحه جهتدار است. روشنایی خروجی عملکرد را نشان می دهد. به عنوان مثال، در پانل (a)، روشنایی نشان دهنده θ10 + θ11×1 + θ12×2 است. خطوط نازک خطوط هستند. d-f) هر صفحه توسط تابع فعال سازی ReLU بریده می شود (خطوط فیروزه ای معادل “مفاصل” در شکل های 3.3d-f هستند). g-i) سپس صفحات بریده شده وزن می شوند و j) با یک افست که ارتفاع کلی سطح را تعیین می کند با هم جمع می شوند. نتیجه یک سطح پیوسته است که از مناطق چند ضلعی خطی تکه ای محدب تشکیل شده است.

جایی که اکنون یک پارامتر شیب برای هر ورودی وجود دارد. واحدهای پنهان برای تشکیل خروجی به روش معمول ترکیب می شوند:

شکل 3.8 پردازش این شبکه را نشان می دهد. هر واحد پنهان ترکیبی خطی از دو ورودی را دریافت می کند که یک صفحه جهت دار را در ورودی/خروجی سه بعدی تشکیل می دهد.
فضا تابع فعال سازی مقادیر منفی این صفحات را به صفر می رساند. سپس صفحات بریده شده در یک تابع خطی دوم (معادله 3.10) برای ایجاد یک سطح خطی پیوسته تکه ای متشکل از مناطق چند ضلعی محدب دوباره ترکیب می شوند (شکل 3.8j). هر منطقه مربوط به یک الگوی فعال سازی متفاوت است. به عنوان مثال، در ناحیه مثلثی مرکزی، واحدهای پنهان اول و سوم فعال هستند و دومی غیرفعال است. هنگامی که بیش از دو ورودی برای مدل وجود دارد، تجسم آن دشوار می شود.
با این حال، تفسیر مشابه است. خروجی یک تابع خطی پیوسته به صورت تکه ای از ورودی خواهد بود، که در آن نواحی خطی اکنون پلی توپ های محدب در فضای ورودی چند بعدی هستند.
توجه داشته باشید که با رشد ابعاد ورودی، تعداد مناطق خطی به سرعت افزایش می یابد (شکل 3.9). برای دریافت احساس سرعت، در نظر بگیرید که هر واحد پنهان a را تعریف می کند
هایپرپلین که بخشی از فضا را که این واحد در آن فعال است از قسمت Notebook 3.3 مشخص می کند
جایی که نیست (خطوط فیروزه ای در 3.8d–f). اگر تعداد واحدهای پنهان به اندازه ابعاد ورودی Di داشتیم، میتوانیم هر ابرصفحه را با یکی از محورهای مختصات تراز کنیم (شکل 3.10). برای دو بعد ورودی، این فضا را به چهار ربع تقسیم می کند. برای سه بعد، هشت اکتانت و برای ابعاد Di، اورتان های 2Di ایجاد می کند. شبکه های عصبی کم عمق معمولاً واحدهای پنهان بیشتری نسبت به ابعاد ورودی دارند، بنابراین معمولاً بیش از مناطق خطی 2Di ایجاد می کنند.
3.4 شبکه های عصبی کم عمق: حالت کلی
ما چندین نمونه از شبکه های کم عمق را برای کمک به توسعه شهود در مورد نحوه کار آنها شرح داده ایم. اکنون یک معادله کلی برای یک شبکه عصبی کم عمق y = f[x, φ] تعریف می کنیم که یک ورودی چند بعدی x ∈ RDi را به یک خروجی چند بعدی y ∈ RDo با استفاده از واحدهای پنهان h ∈ RD ترسیم می کند. هر واحد پنهان به عنوان محاسبه می شود:

و اینها به صورت خطی برای ایجاد خروجی ترکیب می شوند:

شکل 3.9 مناطق خطی در مقابل واحدهای پنهان. الف) حداکثر مناطق ممکن به عنوان تابعی از تعداد واحدهای پنهان برای پنج بعد ورودی مختلف Di = 1، 5، 10، 50، 100. تعداد مناطق در ابعاد بالا به سرعت افزایش می یابد. با D = 500 واحد و اندازه ورودی Di = 100، می تواند بیش از 10107 ناحیه (دایره جامد) وجود داشته باشد. ب) همان داده ها به عنوان تابعی از تعداد پارامترها رسم می شوند. دایره جامد نشان دهنده همان مدل پانل (a) با D = 500 واحد پنهان است. این شبکه دارای 51001 پارامتر است و با استانداردهای مدرن بسیار کوچک در نظر گرفته می شود.

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

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

که در آن a[•] یک تابع فعال سازی غیرخطی است. مدل دارای پارامترهای ϕ = {θ••، ϕ••} است.
شکل 3.11 نمونه ای با سه ورودی، سه واحد پنهان و دو خروجی را نشان می دهد. مسائل 3.14-3.17 تابع فعال سازی به مدل اجازه می دهد تا روابط غیرخطی بین را توصیف کند
ورودی و خروجی، و به این ترتیب، باید خود غیر خطی باشد. بدون تابع فعالسازی یا تابع فعالسازی خطی، نقشهبرداری کلی از ورودی به خروجی به خطی بودن محدود میشود. بسیاری از عملکردهای فعال سازی مختلف آزمایش شده اند (شکل-ure 3.13)، اما رایج ترین انتخاب ReLU است (شکل 3.1)، که دارای شایستگی Notebook 3.4 است.
به راحتی قابل تفسیر بودن با فعالسازیهای ReLU، شبکه فضای ورودی را به چند توپ محدب تقسیم میکند که توسط تقاطعهای ابرصفحههای محاسبهشده توسط «مفاصل» در توابع ReLU تعریف شدهاند. هر پلی توپ محدب دارای تابع خطی متفاوتی است. پلی توپ ها برای هر خروجی یکسان هستند، اما توابع خطی آنها می تواند متفاوت باشد.
3.5 اصطلاحات
این فصل را با معرفی برخی اصطلاحات به پایان می بریم. متأسفانه، شبکههای عصبی اصطلاحات مرتبط زیادی دارند. اغلب به آنها از نظر لایه ها اشاره می شود. سمت چپ شکل 3.12 لایه ورودی، مرکز لایه پنهان و سمت راست لایه خروجی است. ما می گوییم که شبکه در شکل 3.12 دارای یک لایه پنهان است که شامل چهار واحد پنهان است. به خود واحدهای پنهان گاهی اوقات نورون نیز گفته می شود. وقتی داده ها را از طریق شبکه ارسال می کنیم، مقادیر ورودی ها به لایه پنهان (یعنی قبل از اعمال توابع ReLU) پیش فعال سازی نامیده می شوند. مقادیر موجود در لایه پنهان (یعنی بعد از توابع ReLU) فعال سازی نامیده می شوند.
به دلایل تاریخی، هر شبکه عصبی با حداقل یک لایه پنهان، پرسپترون چند لایه یا به اختصار MLP نیز نامیده می شود. شبکههای دارای یک لایه پنهان (همانطور که در این فصل توضیح داده شد) گاهی اوقات به عنوان شبکههای عصبی کم عمق شناخته میشوند. شبکههای دارای لایههای پنهان چندگانه (همانطور که در فصل بعد توضیح داده شد) به عنوان شبکههای عصبی عمیق شناخته میشوند. شبکههای عصبی که در آن اتصالات یک گراف غیر چرخهای را تشکیل میدهند (به عنوان مثال، یک گراف بدون حلقه، مانند تمام مثالهای این فصل) به عنوان شبکههای پیشخور نامیده میشوند. اگر هر عنصر در یک لایه به هر عنصر در لایه بعدی متصل شود (مانند تمام مثالهای این فصل)، شبکه کاملاً متصل است.

شکل 3.12 اصطلاحات. یک شبکه کم عمق از یک لایه ورودی، یک لایه پنهان و یک لایه خروجی تشکیل شده است. هر لایه با اتصالات رو به جلو (فلش) به لایه بعدی متصل می شود. به همین دلیل از این مدل ها به عنوان شبکه های فید فوروارد یاد می شود. هنگامی که هر متغیر در یک لایه به هر متغیری در لایه بعدی متصل می شود، ما به آن شبکه کاملا متصل می گوییم. هر اتصال نشان دهنده یک پارامتر شیب در معادله اصلی است و این پارامترها وزن نامیده می شوند. متغیرهای لایه پنهان نورون یا واحدهای پنهان نامیده می شوند. مقادیری که به واحدهای مخفی وارد می شوند، پیش فعال سازی نامیده می شوند، و مقادیر موجود در واحدهای پنهان (یعنی پس از اعمال تابع ReLU) فعال سازی نامیده می شوند.
پارامترهای شیب را در معادلات اساسی نشان می دهد و به عنوان وزن شبکه شناخته می شود. پارامترهای افست (که در شکل 3.12 نشان داده نشده است) بایاس نامیده می شوند.
3.6 خلاصه
شبکه های عصبی کم عمق دارای یک لایه پنهان هستند. آنها (i) چندین تابع خطی ورودی را محاسبه می کنند، (ii) هر نتیجه را از طریق یک تابع فعال سازی عبور می دهند، و سپس (iii) ترکیبی خطی از این فعال سازی ها را می گیرند تا خروجی ها را تشکیل دهند. شبکه های عصبی کم عمق، y را بر اساس ورودی x با تقسیم فضای ورودی به یک سطح پیوسته از مناطق خطی تکه ای، پیش بینی می کنند. شبکه های عصبی کم عمق با واحدهای پنهان کافی (نرون ها) می توانند هر تابع پیوسته را با دقت دلخواه تقریب کنند.
فصل 4 شبکههای عصبی عمیق را مورد بحث قرار میدهد که مدلهای این فصل را با افزودن لایههای پنهان بیشتر گسترش میدهند. فصل 5-7 نحوه آموزش این مدل ها را شرح می دهد.
یادداشت ها
شبکههای عصبی:
اگر مدلهای این فصل فقط توابع هستند، چرا به آنها «شبکههای عصبی» میگویند؟ این ارتباط متاسفانه ضعیف است. تجسمهایی مانند شکل 3.12 از گرهها (ورودیها، واحدهای پنهان و خروجیها) تشکیل شدهاند که به طور متراکم به یکدیگر متصل هستند. این شباهت سطحی به نورون های مغز پستانداران دارد که دارای اتصالات متراکم نیز هستند. با این حال، شواهد کمی وجود دارد که محاسبات مغز مانند شبکههای عصبی کار میکند، و فکر کردن به زیستشناسی در آینده مفید نیست.


شکل 3.13 توابع فعال سازی. الف) توابع لجستیک سیگموئید و tanh. ب) ReLU نشتی و ReLU پارامتریک با پارامتر 0.25. ج) سافت پلاس، واحد خطی خطای گاوسی و واحد خطی سیگموئید. د) واحد خطی نمایی با پارامترهای 0.5 و 1.0، ه) واحد خطی نمایی مقیاس شده. و) سوئیچ با پارامترهای 0.4، 1.0 و 1.4.
تاریخچه شبکه های عصبی:
McCulloch & Pitts (1943) برای اولین بار به مفهوم یک نورون مصنوعی رسیدند که ورودی ها را برای تولید یک خروجی ترکیب می کرد، اما این مدل یک الگوریتم یادگیری عملی نداشت. روزنبلات (1958) پرسپترون را توسعه داد که ورودی ها را به صورت خطی ترکیب می کرد و سپس آنها را برای تصمیم گیری بله / خیر در آستانه قرار می داد. او همچنین الگوریتمی برای یادگیری وزن ها از داده ها ارائه کرد. مینسکی و پیپرت (1969) استدلال کردند که تابع خطی برای مسائل طبقهبندی کلی ناکافی است، اما افزودن لایههای پنهان با توابع فعالسازی غیرخطی (از این رو اصطلاح پرسپترون چند لایه) میتواند به یادگیری روابط ورودی/خروجی عمومیتر اجازه دهد. با این حال، آنها به این نتیجه رسیدند که الگوریتم روزنبلات نمی تواند پارامترهای چنین مدل هایی را یاد بگیرد. تا دهه 1980 بود که یک الگوریتم عملی (انتشار پس انتشار، فصل 7) توسعه یافت و کار قابل توجهی روی شبکه های عصبی از سر گرفته شد. تاریخچه شبکه های عصبی توسط Kurenkov (2020)، Sejnowski (2018) و Schmidhuber (2022) شرح داده شده است.
توابع فعال سازی:
تابع ReLU در فوکوشیما (1969) استفاده شده است. با این حال، در روزهای اولیه شبکههای عصبی، استفاده از توابع فعالسازی سیگموئید یا tanh رایجتر بود (شکل 3.13a). ReLU توسط جارت و همکاران مجدداً محبوب شد. (2009)، نایر و هینتون (2010)، و گلوروت و همکاران. (2011) و بخش مهمی از داستان موفقیت شبکه های عصبی مدرن است. این ویژگی خوبی دارد که مشتق خروجی با توجه به ورودی همیشه یک برای ورودی های بزرگتر از صفر است. این به پایداری و کارایی تمرین کمک می کند (به فصل 7 مراجعه کنید) و با مشتقات فعال سازی سیگموئید در تضاد است.
توابعی که برای ورودی های مثبت بزرگ و منفی بزرگ اشباع می شوند (نزدیک به صفر می شوند).
با این حال، تابع ReLU دارای این عیب است که مشتق آن برای ورودی های منفی صفر است. اگر تمام مثالهای آموزشی ورودیهای منفی را برای یک تابع ReLU ایجاد کنند، نمیتوانیم پارامترهایی را که در طول آموزش به این ReLU وارد میشوند، بهبود ببخشیم. شیب نسبت به وزنه های ورودی به صورت محلی مسطح است، بنابراین ما نمی توانیم در سراشیبی راه برویم. این به عنوان مشکل ReLU در حال مرگ شناخته می شود. تغییرات زیادی در ReLU برای حل این مشکل پیشنهاد شده است (شکل 3.13b)، از جمله (i) ReLU نشتی (Maas et al., 2013)، که همچنین دارای یک خروجی خطی برای مقادیر منفی با شیب کوچکتر 0.1 است. (2) ReLU پارامتریک (He et al., 2015)، که شیب بخش منفی را به عنوان یک پارامتر ناشناخته در نظر می گیرد، و (iii) ReLU به هم پیوسته (شانگ و همکاران، 2016)، که دو خروجی تولید می کند، یکی که کلیپ های زیر صفر (یعنی مانند یک ReLU معمولی) و یکی از آنها بالای صفر است.
انواع توابع صاف نیز بررسی شده است (شکل 3.13c-d)، از جمله تابع نرم به علاوه (Glorot et al., 2011)، واحد خطی خطای گاوسی (Hendrycks & Gimpel، 2016)، واحد خطی سیگموئید (Hendrycks & گیمپل، 2016) و واحد خطی نمایی (کلورت و همکاران، 2015). بیشتر این ها تلاش هایی برای اجتناب از مشکل در حال مرگ ReLU و در عین حال محدود کردن گرادیان برای مقادیر منفی هستند. کلامباور و همکاران (2017) واحد خطی نمایی مقیاس شده را معرفی کرد (شکل 3.13e)، که به ویژه جالب است زیرا به تثبیت واریانس فعالسازیها در زمانی که واریانس ورودی دارای محدوده محدودی است کمک میکند (به بخش 7.5 مراجعه کنید). راماچاندران و همکاران (2017) یک رویکرد تجربی برای انتخاب یک تابع فعال سازی اتخاذ کرد. آنها فضای توابع ممکن را جستوجو کردند تا عملکردی را بیابند که در انواع وظایف یادگیری تحت نظارت بهترین عملکرد را دارد. تابع بهینه a[x] = x/(1 + exp[βx]) است، که β یک پارامتر آموخته شده است (شکل 3.13f). آنها این تابع را Swish نامیدند. جالب توجه است، این کشف مجدد توابع فعالسازی بود که قبلاً توسط Henrycks & Gimpel (2016) و Elfwing و همکاران پیشنهاد شده بود. (2018). هوارد و همکاران (2019) Swish را با تابع HardSwish تقریبی کرد که شکل بسیار مشابهی دارد اما محاسبه آن سریعتر است:

هیچ پاسخ قطعی در مورد اینکه کدام یک از این توابع فعال سازی از نظر تجربی برتر است وجود ندارد. با این حال، ReLU نشتی، ReLU پارامتری شده، و بسیاری از توابع پیوسته را می توان نشان داد که در شرایط خاص، افزایش عملکرد جزئی را نسبت به ReLU ارائه می کنند. ما در ادامه این کتاب توجه را به شبکههای عصبی با تابع اصلی ReLU محدود میکنیم، زیرا توصیف توابع ایجاد شده توسط آنها از نظر تعداد مناطق خطی آسان است.
قضیه تقریب جهانی:
نسخه عرض این قضیه بیان میکند که شبکهای با یک لایه پنهان حاوی تعداد محدودی واحدهای پنهان وجود دارد که میتواند هر تابع پیوسته مشخص شده را در زیرمجموعه فشرده Rn با دقت دلخواه تقریب کند. این مورد توسط Cybenko (1989) برای یک کلاس از فعالسازیهای سیگموئید ثابت شد و بعداً نشان داد که برای کلاس بزرگتری از توابع فعالسازی غیرخطی صادق است (هورنیک، 1991).
تعداد مناطق خطی:
یک شبکه کم عمق با ورودی های 2 بعدی Di و واحدهای پنهان D را در نظر بگیرید. تعداد مناطق خطی توسط تقاطع هایپرصفحه های D ایجاد شده توسط “مفاصل” در توابع ReLU تعیین می شود (به عنوان مثال، شکل 3.8d-f). هر منطقه با ترکیب متفاوتی از توابع ReLU ایجاد می شود که ورودی را بریده یا بریده نمی کند.
تعداد مناطق ایجاد شده توسط ابرصفحه های D در فضای ورودی Di ≤ D بعدی بود.
زاسلاوسکی (1975) حداکثر LDi (D) نشان داد (یعنی مجموع ضرایب دو جمله ای). به عنوان یک قانون سرانگشتی، شبکههای عصبی کم عمق تقریباً همیشه تعداد واحدهای پنهان D بیشتری نسبت به ابعاد ورودی دارند و بین مناطق خطی 2Di و 2D ایجاد میکنند.
توابع خطی، آفینه و غیرخطی:
از نظر فنی، تبدیل خطی f[ ] هر تابعی است که از اصل برهم نهی تبعیت می کند، بنابراین f[a + b] = f[a] +f[b]. این تعریف به این معنی است که f[2a] = 2f[a]. مجموع وزنی f[h1, h2, h3] = φ1h1 + φ2h2 + φ3h3 خطی است، اما هنگامی که افست (بایاس) اضافه میشود، بنابراین f[h1، h2، h3] = ϕ0 + ϕ1h1 + ϕ2h2 + ϕ3h3، این دیگر درست نیست. برای مشاهده این موضوع، در نظر بگیرید که وقتی آرگومان های تابع سابق را دو برابر می کنیم، خروجی دو برابر می شود. این مورد در مورد تابع دوم نیست، که به درستی تابع affine نامیده می شود. با این حال، در یادگیری ماشینی رایج است که این اصطلاحات را با هم ترکیب کنند. ما در این کتاب از این قرارداد پیروی می کنیم و هر دو را خطی می نامیم. تمام توابع دیگری که با آنها روبرو خواهیم شد غیرخطی هستند.
مسائل
مسئله 3.1 اگر تابع فعال سازی درمعادله 3.1خطی باشد به طوری که a[z] = ψ0 + ψ1z باشد، چه نوع نقشه برداری از ورودی به خروجی ایجاد می شود؟ اگر تابع فعال سازی حذف شود، چه نوع نقشه برداری ایجاد می شود، بنابراین a[z] = z؟
مسئله 3.2 برای هر یک از چهار ناحیه خطی در شکل 3.3j، مشخص کنید که کدام واحدهای پنهان غیرفعال و کدام یک فعال هستند (یعنی کدام یک از ورودی های خود را انجام می دهند و نمی گیرند).
مسئله 3.3 عباراتی را برای موقعیت های “مفاصل” در تابع در شکل 3.3j بر حسب ده پارامتر ϕ و ورودی x استخراج کنید. عباراتی را برای شیب های چهار ناحیه خطی استخراج کنید.
مسئله 3.4 نسخه ای از شکل 3.3 را رسم کنید که در آن نقطه y و شیب سومین واحد پنهان مانند شکل 3.14c تغییر کرده است. فرض کنید پارامترهای باقیمانده ثابت می مانند.

شکل 3.14 پردازش در شبکه با یک ورودی، سه واحد پنهان و یک خروجی برای مسئله 3.4. الف-ج) ورودی هر واحد پنهان تابعی خطی از ورودی ها است. دو مورد اول مانند شکل 3.3 هستند، اما آخری متفاوت است.
مسئله 3.5 ثابت کنید که ویژگی زیر برای α ∈ R+ صادق است:

این به عنوان خاصیت همگنی غیر منفی تابع ReLU شناخته می شود.
مسئله 3.6 در ادامه مسئله 3.5، وقتی پارامترهای θ10 و θ11 را در یک ثابت مثبت α ضرب می کنیم و شیب φ1 را بر همان پارامتر α تقسیم می کنیم، برای شبکه کم عمق تعریف شده در معادلات 3.3 و 3.4 چه اتفاقی می افتد؟ اگر α منفی باشد چه اتفاقی می افتد؟
مسئله 3.7 برازش مدل در معادله 3.1 با استفاده از تابع حداقل مربعات تلفات را در نظر بگیرید. آیا این تابع از دست دادن حداقل منحصر به فرد دارد؟ به عنوان مثال، آیا یک مجموعه “بهترین” از پارامترها وجود دارد؟
مسئله3.8 جایگزینی تابع فعالسازی ReLU را با (i) تابع گام Heaviside[z]، (2) تابع مماس هذلولی tanh[z]، و (iii) تابع مستطیلی rect[z] در نظر بگیرید، که در آن :
(3.15)
heaviside[z] = 0 Z<0 rect[z]=1 Z<0
یک نسخه از شکل 3.3 را برای هر یک از این توابع دوباره ترسیم کنید. پارامترهای اصلی عبارت بودند از: ϕ =
ϕ0، φ1، φ2، ϕ3، θ10، θ11، θ20، θ21، θ30، θ31 = 0.23، 1.3، 1.3، 0.66، 0.2، 0.4، 0.9، 0.9، 1.1، 0.7.
یک توصیف غیررسمی از خانواده توابع ارائه دهید که می تواند توسط شبکه های عصبی با یک ورودی، سه واحد پنهان و یک خروجی برای هر تابع فعال سازی ایجاد شود.
مسئله 3.9 نشان دهید که ناحیه سوم خطی در شکل 3.3 دارای شیبی است که مجموع شیب های ناحیه خطی اول و چهارم است.
مسئله3.10 یک شبکه عصبی با یک ورودی، یک خروجی و سه واحد پنهان را در نظر بگیرید. ساختار در شکل 3.3 نشان می دهد که چگونه این چهار منطقه خطی ایجاد می کند. تحت چه شرایطی این شبکه می تواند تابعی با کمتر از چهار ناحیه خطی ایجاد کند؟
مسئله 3.11 مدل شکل 3.6 چند پارامتر دارد؟
مسئله 3.12 مدل شکل 3.7 چند پارامتر دارد؟
مسئله 3.13 الگوی فعال سازی برای هر یک از هفت منطقه در شکل 3.8 چیست؟ به عبارت دیگر، کدام واحدهای مخفی برای هر منطقه فعال هستند (ورودی را ارسال می کنند) و کدام غیرفعال هستند (ورودی را قطع کنید؟
مسئله 3.14 معادلاتی را که شبکه را در شکل 3.11 تعریف می کنند، بنویسید. باید سه معادله برای محاسبه سه واحد پنهان از ورودی ها و دو معادله برای محاسبه خروجی از واحدهای پنهان وجود داشته باشد.
مسئله 3.15 حداکثر تعداد مناطق خطی سه بعدی که می تواند توسط شبکه در شکل 3.11 ایجاد شود چقدر است؟
مسئله 3.16 معادلات یک شبکه با دو ورودی، چهار واحد پنهان و سه خروجی را بنویسید. این مدل را به سبک شکل 3.11 بکشید.
مسئله 3.17 معادلات 3.11 و 3.12 یک شبکه عصبی عمومی با ورودی های Di، یک لایه پنهان حاوی واحدهای پنهان D و خروجی های Do را تعریف می کند. یک عبارت برای تعداد پارامترهای مدل بر حسب Di، D و Do پیدا کنید.
مسئله 3.18 نشان می دهد که حداکثر تعداد مناطق ایجاد شده توسط یک شبکه کم عمق
با ورودی 2 بعدی Di =، خروجی 1 بعدی Do = و D = 3 واحد پنهان هفت است، مانند شکل 3.8j. از نتیجه Zaslavsky (1975) استفاده کنید که حداکثر تعداد مناطق ایجاد شده است با پارتیشن بندی فضای دو بعدی با ابرصفحه های D LDi (D) می شود. حداکثر چقدر است اگر دو واحد مخفی دیگر را به این مدل اضافه کنیم، تعداد مناطق آن D = 5 است



