Trending December 2023 # Reliance Says Its $3.4B Deal With Future Group # Suggested January 2024 # Top 20 Popular

You are reading the article Reliance Says Its $3.4B Deal With Future Group updated in December 2023 on the website We hope that the information we have shared is helpful to you. If you find the content interesting and meaningful, please share it with your friends and continue to follow and support us for the latest updates. Suggested January 2024 Reliance Says Its $3.4B Deal With Future Group

Reliance Retail, India’s largest retail chain, said on Sunday evening that its proposed deal to acquire Future Group’s assets for a whopping $3.4 billion — against which Amazon has filed a legal proceeding — is fully enforceable under the Indian law and it intends to complete the deal “without any delay.”

According to a individual familiar with the issue, the injunction will stop Future Group out of selling its resources into Reliance Retail by roughly 90 days.

Also read: Best Online Courses to get highest paid in 2023

Amazon’s deal with Future Retail had awarded the American e-commerce giant that the initial right to refusal on cost of more bets from Future Retail, the Indian company had stated at the moment.

Formerly local media reports have asserted that the arrangement between Amazon and Future Retail additionally contained a non-compete clause. Both companies entered an extra deal early this season that allowed Amazon”long-term” rights to market Future Group’s merchandise on the web.

Amazon, Walmart’s Flipkart, and Ambani’s Reliance Industries (which Functions Reliance Retail), the most Precious Company in India, are locked in an intense Struggle to Control the Indian retail market.

In a declaration, an Amazon spokesperson said that the firm was”thankful for the arrangement that grants each of the reliefs which were searched.

We stay committed to an expeditious conclusion of the mediation procedure.” The tribunal hearings are likely to start later this season.

Right now, it’s unclear whether the current injunction is enforceable in India. Really, in a declaration, a Reliance Industry spokesperson stated that Reliance Retail’s trade for acquisition of business and assets of Future Retail were ran under”proper legal guidance” and the”rights and responsibilities are fully enforceable under law.”

Reliance Retail “plans to enforce its rights and finish the transaction concerning the scheme and arrangement with Future group with no delay,” stated the spokesperson to the retail giant, commanded by Ambani, India’s richest person (also pictured above).

The legal proceedings in Singapore has become a surprise for many in the market, as Amazon is thought to be planning to obtain a multi-billion-dollar stake in Reliance Retail, based on previous reports by ET Today and Bloomberg.

With e-commerce controlling only involving 3 -7percent of retail sales in India — and Reliance Retail starting its e-commerce company to combat Amazon and Flipkart — Amazon’s reported potential deal with Reliance Retail is already seen by many industry analysts as critical for its American e-commerce business’s potential in India.

Also read: Best 12 Vocabulary Building Apps for Adults 2023?

Founded in 2006, Reliance Retail functions over 3.5 million clients each week (as of early this season ) by its almost 12,000 physical shops in over 6,500 cities and cities in the nation.

The retail chain, conducted by India’s richest person, Mukesh Ambani, has increased about $5.14 billion by selling roughly an 8.5% stake in its own company to Silver Lake, Singapore’s GIC, General Atlantic and many others in the previous two months.

Ambani’s other enterprise, Jio Platforms, this season increased over $20 billion from over a dozen marquee investors, such as Google and Facebook.

You're reading Reliance Says Its $3.4B Deal With Future Group

5 Useful Mobile Apps To Help You Deal With Long Layovers

A few years back I was flying from New York to Sydney, Australia, with a stop in Los Angeles, California, along the way. Unfortunately, bad weather in New York caused my flight to be delayed for six hours. By the time I landed in Los Angeles, I had missed my connecting flight to Sydney. To make matters worse, the next available flight to Sydney wasn’t for another twenty-four hours. What was shaping up to be a nightmare scenario was made a little more manageable thanks to a few key apps.

1. LoungeBuddy

Airports aren’t the most stimulating places to be. They are often sterile and lack anything to do outside of flipping through magazines at a newsstand. If you fly with any sort of regularity, then you’ve undoubtedly passed by an airport lounge. Sectioned off from the plebeians stuck waiting in uncomfortable chairs surrounded by noise, the airport lounge offers a reprieve: relaxation and privacy. In addition, airport lounges often provide numerous perks like meals, snacks, free Wi-Fi, and in some cases, showers! Compared to the nightmare fuel of a busy airport, lounges are like a little slice of heaven. Many airports have multiple lounges, which makes deciding on which one to visit a guessing game. Fortunately, this is where the Loungebuddy app (iOS) comes in.

LoungeBuddy features details about airport lounges in over 230 airports around the world. It provides information like the cost and amenities available at each lounge. In addition, the app includes reviews from other travelers detailing their experience to help you make a decision. Furthermore, you can book access to a lounge from directly within the app.

2. DayUse/ByHours

If you’ve ever had to suffer through a long layover, you know how mind-numbing it can be. If you can’t sleep well on a plane, there’s a good chance all you want is a few hours of rest before having to slog through another flight. Unfortunately, hotel rooms can be really expensive, especially near airports. You may think your only option is to stretch out across some of those uncomfortable seats by your gate. Luckily, there are two apps that give you a much more comfortable option.

DayUse (Android, iOS) and ByHours (Android, iOS) are two apps that allow users to book hotel rooms by the hour instead of overnight. DayUse claims users can save up to 75% compared to a traditional booking. In addition, DayUse boasts of over 5000 participating hotels in 23 countries. Similarly, ByHours lets users book “microstays” in over 2500 hotels at three-, six- or twelve-hour intervals. Allowing users to book hotel rooms for partial stays can not only refresh a weary traveler but save big money as well.

3. Grab

Flying anywhere means waiting in line. You have to wait in line to check your bags, then in another line to get through security, and yet another line just to board the plane. If you’re flying internationally, then you’re going to have the added pleasure of waiting in line at Customs. Having to wait in any line can exacerbate an already stressful situation, so it can really grind your gears when you have to wait in line for food. Fortunately, with Grab (Android, iOS), you don’t have to.

Grab allows users to browse airport restaurant menus and order straight from the app. Users can place their order for pick up when it’s ready, eliminating waiting in line. Furthermore, Grab offers step-by-step directions to partnered vendors, so if you’re not familiar with the airport, you’ll always be able to find your favorite eatery.

4. Bounce

Layovers don’t have to be a complete waste of time. If you find yourself in a cool city with some time to kill, you might want to leave the confines of the airport and have a look around. However, you don’t want to be lugging your carry-on bags with you as you wander throughout an unfamiliar city. Luckily, with Bounce (Android, iOS) you can safely store your belongings at a number of convenient locations around the city. In addition, the $6-per-day fee won’t break the bank.

Unfortunately, at the time of this writing Bounce is only available within the United States. That being said, Bounce has hundreds of storage locations found in most major cities within the U.S. If you have enough time to get out of the airport and explore, Bounce can help you find a place to store your bags. Furthermore, Bounce is useful even when you’re not traveling. Use it to store your gym bag, work bag, school bag, anything you don’t want to lug around with you all day.

5. MyTSA/MiFlight

Getting through airport security is a bit of a mixed bag. Sometimes you breeze right through without incident, other times it can be incredibly stressful. Long lines and extended waits can potentially result in missed flights. This is especially problematic when trying to make a connecting flight. Fortunately, you can see what the situation is at security and get real-time updates on wait times with two apps.

MyTSA (Android, iOS) is the official app from TSA and provides crowd[sourced security checkpoint wait times, live chat assistance, flight info and permitted items info. Alternatively, MiFlight (iOS) also provides security checkpoint information. Like MyTSA, MiFlight gathers real-time input from other MiFlight users to ensure wait times are accurate.

Subscribe to our newsletter!

Our latest tutorials delivered straight to your inbox

Sign up for all newsletters.

By signing up, you agree to our Privacy Policy and European users agree to the data transfer policy. We will not share your data and you can unsubscribe at any time.

Functioning Of The Agile Group

What is an Agile Group?

The agile group is defined as an association of professionals or individuals who are experts in their individual fields and follow the agile principles and methodology to accomplish the project completion. An agile group comprises 5 to 11 members associated to perform all the necessary activities, whether technical and non-technical related to the project assigned and the task and responsibilities are assigned to them. In the Agile group, a better understanding of services and relationships is established, and thus this understanding helps to improve the services and customer satisfaction. The agile group follows and uses the agile business modelling approach, which is the combination of business processes with agile practices. The agile group is the face of the transformation of business and helps catalyze the organization’s profit.

Different Business Verticals

Start Your Free Project Management Course

Project scheduling and management, project management software & others

Agile Consulting

Agile Training

Agile Executive administration

Agile test Labs

Agile knowledge management

Agile communications

Agile helpdesk support

Consumer retail services

Banking, financial services, and insurance

Information technology-enabled services

Agile groups function on the basis of the following aspects of business development:

The mindset or bend of the Individuals in the agile group is inclined towards growth and flexibility.

It focuses on improving the quality of the delivery process.

Adaptability and adjustment are encouraged in the agile group as the team members have proficient communication skills.

The organization welcomes and embraces agile business practices and the structure for better performance.

Consistent and focused on delivering the product to the stakeholders.

Learning and consistent improvement in each iteration of the agile process.

Traits of an Agile Group

Agile groups are nothing but cross-functional agile teams that have everything to work upon and to deliver the top class service. It has been classified into three main roles, which are:

1. Stakeholder/Owner 2. A Scrum Coach 3. Agile group members

The members are the foundation for any agile group or business implementation as the team members are the ones who work for the success of the project and to achieve the goal of the project. The members are a group of teams performing different functions like the architects, front end and back end developers, technicians, quality analysts, software testers, etc. The agile project implementation will collapse without the group embers as the individual members of the group. The agile team members work together to get rid of any obstruction in the way of achieving the target.

The Functioning of the Agile Group

Agile groups are well known for achieving their targets at the fastest rate, and they stand out from other traditional business groups due to the fastest project completion. Flexibility and speed are the paramount qualities of the agile teams, which help these teams to achieve their target and goal. It works upon two types of agile project management techniques, namely Scrum and Kanban agile project management. The scrum master and the stakeholder together are responsible for outlining and assigning the structures and roles to the members before the group members start working on the project.

This helps to keep track of the project progress, and each member gets a chance to put their point of view in the meeting if they have a productive plan or suggestion for a better quality of the product. The coach and the agile group embers can share and exchange their views in these meetings, which helps to bring integrity among the group members.

The agile group works together to remove any dependencies in the path of product development and product delivery, as it is crucial to break and get rid of these dependencies. It manages the dependencies to reduce the time taken and to achieve the target or project completion within the estimated timeframe. A self-organized agile group encourages flexible responses and rapid developments to make continuous learning and improvement through each iteration. Over the time period, they have evolved and emerged as the most successful teams for achieving the software project completion and best services with the highest customer satisfaction.

Recommended Articles

This has been a guide to the Agile Group. Here we have discussed the different Business Verticals, Traits and the Functioning of the Agile Group. You can also go through our other suggested articles to learn more –

Group Behaviour: Meaning And Characters

There are several causes and methods through which authoritative bodies together into groups. In certain cases, working in tandem with other individuals is more effective than working individually. As soon as we feel a part of almost anything, we automatically perform ourselves in one group and everyone else in another

What does Group Behaviour Define?

Group activity or personal performance when engaging in a group. This is especially true of activities that deviate from the norm when people are not present in a social situation and are influenced by the group. Workgroups initiated by the corporate and given certain duties and responsibilities are called “Formal Groups.” Organizationally idealized influence is the standard in such settings. Friendship and shared pursuits are the bonds that hold together the members of informal networks. A friendship group is a collection of people who have come together because they have a similar interest or a personality trait.

Aspects of Groups Behaviour

Human adjustment refers to the level toward which group members conform to established standards. Whether norms are central or incidental determines how an individual’s adaptation affects the community. Critical norms specify actions that must be upheld at any cost to keep one’s place in the group

Standards of Conduct

Objectives and Targets

Individuals within the group share similar beliefs, values, or attitudes resulting in a unified mission or purpose. The group may then develop clear goals or a specific agenda

Social Rules

All group members adhere to the same code of conduct, and each group member is measured against these standards. Values and norms may be formal, such as a set of regulations, or informal, such as a set of guidelines. However, everyone on the team knows exactly what is always required of them.

Mutual Understanding

How well a group can recover from failures. If there is more solidarity inside the group, it will be easier to regulate behavior and create standards of conduct.

Organized Structure

Power and rank are contexts specific to every society, and this might take a hierarchical form, or it could be more open and participatory. The leader-follower relationship also has distinct characteristics.

What Psychology Claims About Behaviour? Collaborative Work in Group

The term Collaborative Work describes the efforts of a group of people who combine their resources to achieve a common goal. Groups acting this way tend to be effective because they understand the need for fortunate aid in completing their mission. People who band together to accomplish a similar goal usually have some common ground regarding shared values, goals, and emotions.

Volunteering in a Presentation

Individuals engaging in collective behavior also participate in protests and marches. Here, people gather to show support for or opposition to an issue. As an illustration of a protest in the contemporary day, we might look at the riots that findings state the assassination of George Floyd. Like the Women’s March that sprung up when Trump was sworn in as president.

Revealing National Pride

National pride may be seen in the actions of groups that have coalesced around a common sentiment of patriotism. Those who have assembled for this reason tend to act with enthusiasm and dedication. Patriotic groups have the potential to do good, but they also risk harming others.

Watching the Action

The term “watcher group behavior” describes a group of individuals coming together with the sole intention of watching a contest. Entertainment options might range from live performances to movie screenings or sporting events.

The Perspectives of a Focus Group

It includes

Worked Effectively

People’s beliefs, attitudes, and actions tend to reflect those of the group when we are everything together. As people are susceptible to being persuaded by their peers, groups have considerable influence over them, whether because of normative or informative social influence. Mob mentality is another example of the phenomenon of group conformity. The term “mob mentality” describes a phenomenon in which group members alter their views to conform to what they consider to be the group’s consensus. Because groups tend to make more extreme choices than individuals, they are more likely to take extreme action in group settings. Even more, collectivism may stifle creative debate. This failure to consider other viewpoints increases the likelihood of making a poor collective choice.

Group Collective Oscillation

Intergroup conflict is another social phenomenon that often arises in team situations. After hearing opposing points of view, group members may become more firmly committed to their initial position, a phenomenon known as “group polarisation.” In that instance, if most of a group supports a certain perspective at the outset, that view will likely get even more support after being debated. The converse is also true: if the group is already hostile to a perspective, then discussing it together will likely solidify that resistance. The polarization of groups may explain many collective actions that counter individual norms. At political conventions, it is common to see people who, when not in a group, would not support the party program voting for it.


The business’s success is directly tied to the team’s teamwork and unity. Therefore, dedication, communication, and cohesiveness determine the efficacy of collective choices. Successful businesses are led by leaders who understand the importance of teamwork and the value of each team member’s contribution. Individual growth, completing a task, and keeping the team together are the three pillars of effective team development. Having transparent lines of communication between management and staff is key to creating a team atmosphere where everyone’s skills and contributions are valued.

How Linux Qt Works With Its Uses And Features

Introduction to Linux QT

QT is defined as an app development framework that is intended for cross-platform development activities. The development activities include developing apps for mobile, desktop, and embedded applications. The QT framework supports Linux and platforms like Windows, iOS, Android, OS X, and many others. Though for the matter of the article, we will discuss an end to end about QT only keeping Linux in mind. Some of the organizations widely use QT for their app development, and these include Siemens, AMD, Telegram, etc. last bit of intro for QT is that this framework is written in C++, and hence the apps written on it can be compiled through any standard C++ compiler.

Start Your Free Software Development Course

How does Linux QT work?

Before learning about the working of Linux QT, let us understand how to pronounce it! QT is pronounced as “cute”. It is an app development framework, as we talked about when we were looking at the definition, but one needs to also know that the QT framework is not a programming language and instead just only a framework written in C++. After the compiler is written in C++, a pre-processor or other words, compiler, known as MOC (Meta-Object Compiler), is used for extension of the C++ language and its features.

Now let us understand how QT works. A developer writes the code for all utilities of the app in the QT framework. Once the codes are developed and validated for their logic, one needs to run the compiler. Before the source files reach the compiler, the Meta Object Compiler parses all the source files which are written in the Qt framework; the extended version of C++, standard complaint C++ source codes are generated for compilation. For the compilation of the framework itself or the application or libraries using it, any standard C++ complaint compiler can be used as they are capable of reading the C++ complaint codes generated by the QT framework.

Now the next important thing for us to know is how a QT program is compiled. In QT, though there is a system known as QT creator that invokes the build system, it is interesting and important to know the compilation of QT programs. In the case of smaller programs, it becomes very easy to perform the compilation manually by creating the object files and then linking them in a particular fashion to achieve the desired result, but the challenge in a larger program where the command line is hard to write.

In Linux, the programs are compiled by the use of makefile, where all the command lines are described for execution and in larger projects, making the makefile is tedious. To solve the problem of making the makefile, a build system comes bound with QT, known as qmake, which performs the job of making the makefile. The makefile prepared using qmake includes the meta-object extraction phase, which is responsible for the extension of C++ in the QT framework. Now summing up the compilation which happens in 3 phases:

.pro file is created, which describes the project which needs to compile.

Makefile is generated using the qmake.

The program is then built using make.

How to use Linux QT?

For building QT on any platform, the below-listed steps are followed. Now, since this article is particularly for Linux, let us walk through the process of building or using QT on a Linux system.

Source code archive is downloaded.

The easiest and most convenient way to download the QT is by browsing for the download server and then navigating to the appropriate directory. After navigation, the official source code is found as the system specification and then downloaded. Some people also prefer the Linux command line for downloading the file, using the wget command.

The source code is extracted to a working directory.

The development packages and other build dependencies are installed for QT.

QT is configured for desired options and made sure that all dependencies are met.

This step will help identify the options that will be enabled and then create the make files required for the build. The syntax for initiation is by running a shell script by ./configure.

QT build is started

In this step, the build is performed by running the command make.

The new version is installed and tested.

The final version is to test the new version of QT and is done by running

sudo make install


Quite a mature platform vetted by major players in application development.

Well-designed framework. Some might argue it to be the best-designed framework.

The user base for QT is quite exemplary.

The documentation is well written.

Stability on the major platforms.

The cross-platform way of working enables many kinds of stuff that desktop application often needs to do.

As it is written in C++, some people who don’t use C++ might find it clumsy at an aesthetic level.

The use of a MOC adds a bit of complexity.

QT doesn’t reply on standard libraries, and as a result, many times, wheels must be reinvented. For example, making a string class again!

A lot of ownership change has happened for QT; hence the future is still debatable!


Design Tools

Example: QT Design Studio, QT designer, QT quick Designer

Development Tools

Example: QT QmlLive, GammaRay, Emulator

Framework Essentials:

Example: QT Core, QT GUI, QT Multimedia

Framework Add-on

Example: Active QT, QT Canvas 3D, QT Android Extras


With the different aspects being touched upon by this article, we by now have a clear picture of QT and the essential aspects of this framework. The next steps lie in the hand of the reader to try out these steps and create something exciting as an application to use!

Recommended Articles

This is a guide to Linux QT. Here we discuss How to do Linux QT work, and the features available for QT majorly bucketed into 4 categories. You may also have a look at the following articles to learn more –

Guide To Gradient Descent And Its Variants With Python Implementation

This article was published as a part of the Data Science Blogathon

Introduction Table of Content:

Need for Optimization

Gradient Descend

Stochastic Gradient Descent (SGD)

Mini batch Gradient Descent (SGD)

Momentum based Gradient Descent (SGD)

Adagrad (short for adaptive gradient)


Adam(Adaptive Gradient Descend)


Need for Optimization

The main purpose of machine learning or deep learning is to create a model that performs well and gives accurate predictions in a particular set of cases. In order to achieve that, we machine optimization.

Optimization starts with defining some kind of loss function/cost function (objective function) and ends with minimizing it using one or the other optimization routine. The choice of an optimization algorithm can make a difference between getting a good accuracy in hours or days.

To know more about the Optimization algorithm refer to this article

1.Gradient Descent

Gradient descent is one of the most popular and widely used optimization algorithms.

Gradient descent is not only applicable to neural networks but is also used in situations where we need to find the minimum of the objective function.

Python Implementation:

Note: We will be using MSE (Mean Squared Error) as the loss function.

We generate some random data points with 500 rows and 2 columns (x and y) and use them for training

data = np.random.randn(500, 2) ## Column one=X values; Column two=Y values theta = np.zeros(2) ## Model Parameters(Weights)

Calculate the loss function using MSE

def loss_function(data,theta): #get m and b m = theta[0] b = theta[1] loss = 0 #on each data point for i in range(0, len(data)): #get x and y x = data[i, 0] y = data[i, 1] #predict the value of y y_hat = (m*x + b) #compute loss as given in quation (2) loss = loss + ((y - (y_hat)) ** 2) #mean sqaured loss mean_squared_loss = loss / float(len(data)) return mean_squared_loss

Calculate the Gradient of loss function for model parameters

def compute_gradients(data, theta): gradients = np.zeros(2) #total number of data points N = float(len(data)) m = theta[0] b = theta[1] #for each data point for i in range(len(data)): x = data[i, 0] y = data[i, 1] #gradient of loss function with respect to m as given in (3) gradients[0] += - (2 / N) * x * (y - (( m* x) + b)) #gradient of loss funcction with respect to b as given in (4) gradients[1] += - (2 / N) * (y - ((theta[0] * x) + b)) #add epsilon to avoid division by zero error epsilon = 1e-6 gradients = np.divide(gradients, N + epsilon) return gradients

After computing gradients, we need to update our model parameter.

theta = np.zeros(2) gr_loss=[] for t in range(50000): #compute gradients gradients = compute_gradients(data, theta) #update parameter theta = theta - (1e-2*gradients) #store the loss gr_loss.append(loss_function(data,theta))

2. Stochastic Gradient Descent (SGD)

In gradient descent, to perform a single parameter update, we go through all the data points in our training set. Updating the parameters of the model only after iterating through all the data points in the training set makes convergence in gradient descent very slow increases the training time, especially when we have a large dataset. To combat this, we use Stochastic Gradient Descent (SGD).

In Stochastic Gradient Descent (SGD) we don’t have to wait to update the parameter of the model after iterating all the data points in our training set instead we just update the parameters of the model after iterating through every single data point in our training set.

Since we update the parameters of the model in SGD after iterating every single data point, it will learn the optimal parameter of the model faster hence faster convergence, and this will minimize the training time as well.

3. Mini-batch Gradient Descent

In Mini-batch gradient descent, we update the parameters after iterating some batches of data points.

Let’s say the batch size is 10, which means that we update the parameter of the model after iterating through 10 data points instead of updating the parameter after iterating through each individual data point.

Now we will calculate the loss function and update parameters

def minibatch(data, theta, lr = 1e-2, minibatch_ratio = 0.01, num_iterations = 5000): loss = [] minibatch_size = int(math.ceil(len(data) * minibatch_ratio)) ## Calculate batch_size for t in range(num_iterations): sample_size = random.sample(range(len(data)), minibatch_size) np.random.shuffle(data) #sample batch of data sample_data = data[0:sample_size[0], :] #compute gradients grad = compute_gradients(sample_data, theta) #update parameters theta = theta - (lr * grad) loss.append(loss_function(data,theta)) return loss

4.Momentum based Gradient Descent (SGD)

The problem with Stochastic Gradient Descent (SGD) and Mini-batch Gradient Descent was that during convergence they had oscillations.

From the above plot, we can see oscillations represented with dotted lines in the case of Mini-batch Gradient Descent.

Now you must be wondering what these oscillations are?

Momentum helps us in not taking the direction that does not lead us to convergence.

In other words, we take a fraction of the parameter update from the previous gradient step and add it to the current gradient step.

Python Implementation

def Momentum(data, theta, lr = 1e-2, gamma = 0.9, num_iterations = 5000): loss = [] #Initialize vt with zeros: vt = np.zeros(theta.shape[0]) for t in range(num_iterations): #compute gradients with respect to theta gradients = compute_gradients(data, theta) #Update vt by equation (8) vt = gamma * vt + lr * gradients #update model parameter theta by equation (9) theta = theta - vt #store loss of every iteration loss.append(loss_function(data,theta)) return loss

From the above plot, we can see that Momentum reduces the oscillations produced in MiniBatch Gradient Descent

5. Adagrad (short for adaptive gradient)

In the case of deep learning, we have many model parameters (Weights) and many layers to train. Our goal is to find the optimal values for all these weights.

In all of the previous methods, we observed that the learning rate was a constant value for all the parameters of the network.

However, Adagrad adaptively sets the learning rate according to a parameter hence the name adaptive gradient.

In the given equation the denominator represents the sum of the squares of the previous gradient step for the given parameter. If we can notice this denominator actually scales of learning rate.

– That is, when the sum of the squared past gradients has a high value, we are basically dividing the learning rate by a high value, so our learning rate will become less.

– Similarly, if the sum of the squared past gradients has a low value, we are dividing the learning rate by a lower value, so our learning rate value will become high.

Python Implementation

def AdaGrad(data, theta, lr = 1e-2, epsilon = 1e-8, num_iterations = 100): loss = [] #initialize gradients_sum for storing sum of gradients gradients_sum = np.zeros(theta.shape[0]) for t in range(num_iterations): #compute gradients with respect to theta gradients = compute_gradients(data, theta) #compute square of sum of gradients gradients_sum += gradients ** 2 #update gradients gradient_update = gradients / (np.sqrt(gradients_sum + epsilon)) #update model parameter according to equation (12) theta = theta - (lr * gradient_update) loss.append(loss_function(data,theta)) return loss

As we can see that for every iteration, we are accumulating and summing all the past squared gradients. So, on every iteration, our sum of the squared past gradients value will increase. When the sum of the squared past gradient value is high, we will have a large number in the denominator. When we divide the learning rate by a very large number, then the learning rate will become very small.

That is, our learning rate will be decreasing. When the learning rate reaches a very low value, then it takes a long time to attain convergence

6. Adadelta

We can see that in the case of Adagrad we had a vanishing learning rate problem. To deal with this we generally use Adadelta.

In Adadelta, instead of taking the sum of all the squared past gradients, we take the exponentially decaying running average or weighted average of gradients.

Python Implementation

def AdaDelta(data, theta, gamma = 0.9, epsilon = 1e-5,num_iterations = 500): loss = [] #initialize running average of gradients E_grad2 = np.zeros(theta.shape[0]) #initialize running average of parameter update E_delta_theta2 = np.zeros(theta.shape[0]) for t in range(num_iterations): #compute gradients of loss with respect to theta gradients = compute_gradients(data, theta) #compute running average of gradients as given in equation (13) E_grad2 = (gamma * E_grad2) + ((1. - gamma) * (gradients ** 2)) #compute delta_theta as given in equation (14) delta_theta = - (np.sqrt(E_delta_theta2 + epsilon)) / (np.sqrt(E_grad2 + epsilon)) * gradients #compute running average of parameter updates as given in equation (15) E_delta_theta2 = (gamma * E_delta_theta2) + ((1. - gamma) * (delta_theta ** 2)) #update the model parameter, theta as given in equation (16) theta = theta + delta_theta #store the loss loss.append(loss_function(data,theta)) return loss

Note: The main idea behind Adadelta and RMSprop is mostly the same that is to deal with the vanishing learning rate by taking the weighted average of gradient step.

To know more about RMSprop refer to this article

7. Adam(Adaptive moment estimation)

compute the running average of the gradients.

In the above equations Beta=decaying rate.

From the above equation, we can see that we are combining the equations from both Momentum and RMSProp.

Python Implementation

def Adam(data, theta, lr = 1e-2, beta1 = 0.9, beta2 = 0.9, epsilon = 1e-6, num_iterations = 1000): loss = [] #initialize first moment mt mt = np.zeros(theta.shape[0]) #initialize second moment vt vt = np.zeros(theta.shape[0]) for t in range(num_iterations): #compute gradients with respect to theta gradients = compute_gradients(data, theta) #update first moment mt as given in equation (19) mt = beta1 * mt + (1. - beta1) * gradients #update second moment vt as given in equation (20) vt = beta2 * vt + (1. - beta2) * gradients ** 2 #compute bias-corected estimate of mt (21) mt_hat = mt / (1. - beta1 ** (t+1)) #compute bias-corrected estimate of vt (22) vt_hat = vt / (1. - beta2 ** (t+1)) #update the model parameter as given in (23) theta = theta - (lr / (np.sqrt(vt_hat) + epsilon)) * mt_hat loss.append(loss_function(data,theta)) return loss

Update the detailed information about Reliance Says Its $3.4B Deal With Future Group on the website. We hope the article's content will meet your needs, and we will regularly update the information to provide you with the fastest and most accurate information. Have a great day!