পাঠ ১৬ · ৩৫-এর মধ্যে · মডিউল ৪
Home / AI Courses / Math for AI & ML / কনভেক্সিটি ও স্যাডল পয়েন্ট

কনভেক্সিটি, লোকাল/গ্লোবাল মিনিমা ও স্যাডল পয়েন্ট

Convexity, local/global minima & saddle points
১৩ মিনিট পড়া মাঝারি · Intermediate NumPy কোডসহ সম্পূর্ণ বাংলায়

এই পাঠে যা শিখবেন

  • উত্তল ফাংশনের গাণিতিক সংজ্ঞা ও এর গুরুত্বপূর্ণ ধর্ম
  • এক-ভ্যারিয়েবল ও বহু-ভ্যারিয়েবলের দ্বিতীয়-ডেরিভেটিভ টেস্ট
  • $f(x,y)=x^2-y^2$ উদাহরণে হেসিয়ানের eigenvalue দিয়ে স্যাডল পয়েন্ট শনাক্ত করা
  • কেন গভীর নিউরাল নেটওয়ার্কে "লোকাল মিনিমায় আটকে যাওয়া" আসলে যতটা ভয় পাওয়া হয় ততটা বড় সমস্যা নয়

১ · উত্তল (Convex) ফাংশনের সংজ্ঞা

একটি ফাংশন $f$-কে উত্তলConvexএকটি ফাংশন যার গ্রাফের যেকোনো দুই বিন্দুর মধ্যে সরলরেখা সবসময় গ্রাফের উপরে বা তার উপর থাকে। বলা হয় যদি এর গ্রাফের যেকোনো দুটি বিন্দুর মধ্যে টানা সরলরেখা সবসময় গ্রাফের উপরে (বা তার উপরে) থাকে। গাণিতিকভাবে, সব $\mathbf{x}, \mathbf{y}$ এবং $\lambda \in [0,1]$-এর জন্য:

$$ f(\lambda \mathbf{x} + (1-\lambda)\mathbf{y}) \leq \lambda f(\mathbf{x}) + (1-\lambda) f(\mathbf{y}) $$

বাম পাশ হলো $\mathbf{x}$ ও $\mathbf{y}$-এর মধ্যবর্তী কোনো বিন্দুতে ফাংশনের প্রকৃত মান, আর ডান পাশ হলো $f(\mathbf{x})$ ও $f(\mathbf{y})$-এর মধ্যে টানা সরলরেখার (chord) সেই একই বিন্দুতে মান। শর্তটি বলছে — বক্ররেখা সবসময় সরলরেখার নিচে বা তার উপর থাকে, কখনো তার উপরে ওঠে না।

উদাহরণ: $f(x)=x^2$ উত্তল। $f(x)=\sin x$ সামগ্রিকভাবে উত্তল নয় (নির্দিষ্ট অঞ্চলে হতে পারে)।

মূল ধর্ম · Key property

উত্তল ফাংশনের জন্য প্রতিটি লোকাল মিনিমাই একটি গ্লোবাল মিনিমা। সংক্ষিপ্ত কারণ — যদি একটি লোকাল মিনিমা $\mathbf{x}_0$ গ্লোবাল না হতো, তাহলে কোথাও একটি বিন্দু $\mathbf{x}_1$ থাকত যেখানে $f(\mathbf{x}_1) < f(\mathbf{x}_0)$। কিন্তু উত্তলতার সংজ্ঞা অনুযায়ী $\mathbf{x}_0$ ও $\mathbf{x}_1$-এর মধ্যবর্তী প্রতিটি বিন্দুতে ফাংশনের মান সরলরেখার নিচে বা সমান থাকতে বাধ্য — যার মানে $\mathbf{x}_0$-এর একেবারে কাছেও এমন বিন্দু থাকবে যেখানে ফাংশন $f(\mathbf{x}_0)$-এর চেয়ে কম, যা $\mathbf{x}_0$-কে লোকাল মিনিমা হওয়ার বিরোধিতা করে। তাই এই দুটো একসাথে অসম্ভব — লোকাল মিনিমা গ্লোবালও হতে বাধ্য।

২ · দ্বিতীয়-ডেরিভেটিভ টেস্ট — এক ভ্যারিয়েবল

একটি ফাংশন $f(x)$-এর একটি critical point $x_0$ (যেখানে $f'(x_0)=0$) কী ধরনের তা জানতে দ্বিতীয় ডেরিভেটিভ দেখা হয়:

  • $f''(x_0) > 0$ ⟹ লোকাল মিনিমা (ফাংশনটি উপরের দিকে বাঁকা, বাটির মতো)
  • $f''(x_0) < 0$ ⟹ লোকাল ম্যাক্সিমা (নিচের দিকে বাঁকা, উলটানো বাটির মতো)
  • $f''(x_0) = 0$ ⟹ টেস্ট নিশ্চিত কিছু বলে না (আরও পরীক্ষা লাগবে)

৩ · দ্বিতীয়-ডেরিভেটিভ টেস্ট — বহু ভ্যারিয়েবল (হেসিয়ান দিয়ে)

পাঠ ১৫-এ আমরা দেখেছি হেসিয়ান $\mathbf{H}$ একটি critical point-এর আশেপাশে ফাংশনের আচরণ নির্ধারণ করে কোয়াড্রেটিক ফর্ম $\boldsymbol\delta^T\mathbf{H}\boldsymbol\delta$-এর মাধ্যমে। পাঠ ১২-এর definiteness টেস্ট এখানে সরাসরি প্রয়োগ হয় — একটি critical point $\mathbf{x}_0$ (যেখানে $\nabla f(\mathbf{x}_0)=\mathbf{0}$)-এ:

  • $\mathbf{H}$ positive definite (সব eigenvalue $>0$) ⟹ লোকাল মিনিমা
  • $\mathbf{H}$ negative definite (সব eigenvalue $<0$) ⟹ লোকাল ম্যাক্সিমা
  • $\mathbf{H}$ indefinite (মিশ্র-চিহ্নের eigenvalue — কিছু ধনাত্মক, কিছু ঋণাত্মক) ⟹ স্যাডল পয়েন্টSaddle Pointএমন একটি critical point যেখানে ফাংশন কিছু দিকে বাড়ে, কিছু দিকে কমে — ঘোড়ার জিনের (saddle) মতো আকৃতি।

৪ · সম্পূর্ণ উদাহরণ — $f(x,y) = x^2 - y^2$

এই ফাংশনটির গ্রেডিয়েন্ট: $\nabla f = (2x, -2y)$। এটি শূন্য হয় শুধু $(x,y)=(0,0)$-তে — এটিই একমাত্র critical point। এখন হেসিয়ান বের করি:

$$ \mathbf{H} = \begin{pmatrix} \partial^2 f/\partial x^2 & \partial^2 f/\partial x \partial y \\ \partial^2 f/\partial y \partial x & \partial^2 f/\partial y^2 \end{pmatrix} = \begin{pmatrix} 2 & 0 \\ 0 & -2 \end{pmatrix} $$

এটি ইতিমধ্যে একটি বিকর্ণ (diagonal) ম্যাট্রিক্স, তাই এর eigenvalue সরাসরি বিকর্ণের উপাদান — $\lambda_1 = 2$ এবং $\lambda_2 = -2$ (পাঠ ১০-এর characteristic equation $\det(\mathbf{H}-\lambda\mathbf{I})=0$ দিয়ে যাচাই করলেও একই ফল আসবে: $(2-\lambda)(-2-\lambda) = 0 \Rightarrow \lambda = 2, -2$)।

একটি ধনাত্মক ও একটি ঋণাত্মক eigenvalue — অর্থাৎ হেসিয়ান indefinite। তাই উৎস বিন্দু $(0,0)$ একটি স্যাডল পয়েন্ট। ভৌতভাবে এটি বোঝায় — $x$-দিকে ($y=0$ রেখা বরাবর) ফাংশনটি $x^2$-এর মতো বাড়ে (নিচ থেকে একটি উপত্যকা দেখাচ্ছে), কিন্তু $y$-দিকে ($x=0$ রেখা বরাবর) ফাংশনটি $-y^2$-এর মতো কমে (উপর থেকে একটি চূড়া দেখাচ্ছে)। একই বিন্দু একদিকে মিনিমা, আরেকদিকে ম্যাক্সিমার মতো আচরণ করছে — ঠিক ঘোড়ার জিনের (saddle) আকৃতির মতো।

একটি ঘোড়ার জিনের (saddle) কথা ভাবুন। সামনে-পিছনে বসলে মনে হয় আপনি একটি উপত্যকার মাঝে (নিচু জায়গা), কিন্তু ডানে-বামে সরে দেখলে মনে হয় আপনি একটি চূড়ার উপর (উঁচু জায়গা)। একই বিন্দু, দুই দিকে দুই ভিন্ন আচরণ — এই কারণেই এই ধরনের critical point-কে "saddle point" বলা হয়।

৫ · কেন এটি ডিপ লার্নিংয়ে গুরুত্বপূর্ণ

একটি সাধারণ ভুল ধারণা হলো — নিউরাল নেটওয়ার্ক ট্রেনিং "লোকাল মিনিমায় আটকে যাওয়ার" ঝুঁকিতে থাকে। কিন্তু উচ্চ-ডাইমেনশনাল লস ল্যান্ডস্কেপে (লক্ষ লক্ষ প্যারামিটার) একটি বাস্তব ও গুরুত্বপূর্ণ পর্যবেক্ষণ হলো — স্যাডল পয়েন্টই লোকাল মিনিমার চেয়ে অনেক বেশি সাধারণ বাধা। কারণ একটি critical point লোকাল মিনিমা হতে হলে হেসিয়ানের সব eigenvalue ধনাত্মক হতে হয় — এবং ডাইমেনশন যত বাড়ে, শুধু কাকতালীয়ভাবে সব eigenvalue একই চিহ্নের হওয়ার সম্ভাবনা তত কমে যায়। তাই ব্যবহারিকভাবে "আটকে যাওয়া"র বেশিরভাগ ক্ষেত্রেই আসলে স্যাডল পয়েন্টের কাছে ধীরগতির চলাফেরা, প্রকৃত লোকাল মিনিমা নয়।

৬ · কোড দিয়ে যাচাই

নিচে $f(x,y)=x^2-y^2$-এর হেসিয়ান NumPy দিয়ে বসিয়ে তার eigenvalue হিসাব করা হলো, এবং সেই eigenvalue-এর চিহ্ন দেখে critical point-এর ধরন নির্ণয় করা হলো।

Python · NumPy
import numpy as np

# f(x, y) = x^2 - y^2 -এর হেসিয়ান, উৎস বিন্দুতে (এবং আসলে সব বিন্দুতেই, কারণ এটি ধ্রুবক)
H = np.array([[2.0, 0.0],
              [0.0, -2.0]])

eigenvalues, eigenvectors = np.linalg.eig(H)
print("হেসিয়ানের eigenvalue:", eigenvalues)

if np.all(eigenvalues > 0):
    kind = "লোকাল মিনিমা (positive definite)"
elif np.all(eigenvalues < 0):
    kind = "লোকাল ম্যাক্সিমা (negative definite)"
else:
    kind = "স্যাডল পয়েন্ট (indefinite — মিশ্র চিহ্ন)"

print("critical point-এর ধরন:", kind)

    
দ্বিতীয়-ডেরিভেটিভ টেস্ট শুধু critical point-এ প্রযোজ্য (যেখানে গ্রেডিয়েন্ট শূন্য)। যদি $\nabla f(\mathbf{x}_0) \neq \mathbf{0}$ হয়, তাহলে $\mathbf{x}_0$ আদৌ কোনো মিনিমা/ম্যাক্সিমা/স্যাডল পয়েন্ট নয় — সেখানে হেসিয়ান দেখার কোনো মানে নেই।

ভাবনার প্রশ্ন

প্রতিটি প্রশ্ন নিজে কিছুক্ষণ ভাবুন — তারপর "→ উত্তর" চাপুন।

প্র ০১ কেন নিউরাল নেটওয়ার্কের লস ফাংশন সাধারণত উত্তল নয়?

একটি নিউরাল নেটওয়ার্কের প্যারামিটারের সাপেক্ষে লস ফাংশন অসংখ্য নন-লিনিয়ার অ্যাক্টিভেশন ফাংশন (মডিউল ৪-এর পাঠ ১৮) ও একাধিক লেয়ারের গুণনের মধ্য দিয়ে তৈরি একটি অত্যন্ত জটিল কম্পোজিট ফাংশন। এই ধরনের কম্পোজিশন সাধারণত উত্তলতার শর্ত ভঙ্গ করে — অর্থাৎ একাধিক লোকাল মিনিমা, ম্যাক্সিমা ও স্যাডল পয়েন্ট থাকতে পারে। এই কারণেই গ্রেডিয়েন্ট ডিসেন্ট (পাঠ ১৭) গ্লোবাল মিনিমা খুঁজে পাওয়ার নিশ্চয়তা দেয় না — শুধু একটি লোকাল critical point-এর কাছে পৌঁছানোর নিশ্চয়তা দেয়।

প্র ০২ $f(x,y)=x^2-y^2$-এর গ্রাফ কল্পনা করলে কেন এটিকে "saddle" (ঘোড়ার জিন) বলা মানানসই মনে হয়?

$y=0$ রেখা বরাবর কাটলে গ্রাফটি $z=x^2$ — একটি উপত্যকা (parabola upward)। $x=0$ রেখা বরাবর কাটলে গ্রাফটি $z=-y^2$ — একটি চূড়া (parabola downward)। ত্রিমাত্রিক জায়গায় এই দুটো আচরণ একসাথে হলে যে আকৃতি তৈরি হয় তা দেখতে অবিকল একটি ঘোড়ার জিনের মতো — একদিকে বসার জায়গা নিচু, আরেকদিকে উঁচু।

প্র ০৩ যদি হেসিয়ানের একটি eigenvalue ঠিক শূন্য হয় (বাকিগুলো একই চিহ্নের), তখন কী সিদ্ধান্ত নেওয়া যায়?

তখন দ্বিতীয়-ডেরিভেটিভ টেস্ট নিশ্চিতভাবে কিছু বলতে পারে না (ঠিক এক-ভ্যারিয়েবলে $f''(x_0)=0$-এর মতোই অনির্ণেয় ক্ষেত্র)। ঐ দিকে ফাংশনের আচরণ নির্ধারণ করতে উচ্চতর-ক্রম (তৃতীয়, চতুর্থ...) ডেরিভেটিভ বা অন্য কোনো বিশ্লেষণ প্রয়োজন হয়।

অনুশীলন

  1. শ্রেণীবদ্ধ করুন: $f(x,y) = x^2+y^2$-এর একমাত্র critical point $(0,0)$-এর হেসিয়ান ও eigenvalue বের করে এটি মিনিমা, ম্যাক্সিমা নাকি স্যাডল পয়েন্ট তা নির্ণয় করুন।

    $\mathbf{H} = \begin{pmatrix}2&0\\0&2\end{pmatrix}$, eigenvalue দুটোই $2$ (ধনাত্মক)। সুতরাং হেসিয়ান positive definite এবং $(0,0)$ একটি লোকাল (এবং যেহেতু ফাংশনটি উত্তল, গ্লোবালও) মিনিমা।

  2. শ্রেণীবদ্ধ করুন: $f(x,y) = -x^2-y^2$-এর একমাত্র critical point $(0,0)$ কী ধরনের?

    $\mathbf{H} = \begin{pmatrix}-2&0\\0&-2\end{pmatrix}$, eigenvalue দুটোই $-2$ (ঋণাত্মক)। হেসিয়ান negative definite, তাই $(0,0)$ একটি লোকাল ম্যাক্সিমা।

  3. কোড বাড়ান: উপরের code cell-এ H-কে np.array([[2.0, 0.0], [0.0, 2.0]]) করে Run চাপুন — আউটপুট কী দেখায়, এবং তা কি আপনার হাতে করা প্রথম অনুশীলনীর উত্তরের সাথে মেলে?

    আউটপুটে eigenvalue দেখাবে [2. 2.] এবং critical point-এর ধরন দেখাবে "লোকাল মিনিমা" — যা প্রথম অনুশীলনীর হাতে-করা উত্তরের সাথে হুবহু মেলে।

আরও পড়ুন · ABCL TECH-এ আপনার পরবর্তী পদক্ষেপ

পূর্ববর্তী পাঠ
জ্যাকোবিয়ান ও হেসিয়ান